Changeset 2fe3687 in rtems


Ignore:
Timestamp:
Dec 6, 2017, 2:56:50 PM (2 years ago)
Author:
Christian Mauderer <Christian.Mauderer@…>
Branches:
master
Children:
7704f1a
Parents:
3f575da
git-author:
Christian Mauderer <Christian.Mauderer@…> (12/06/17 14:56:50)
git-committer:
Sebastian Huber <sebastian.huber@…> (12/07/17 06:30:16)
Message:

dosfs: Allow creating a file with similar name.

If there is already a file with a long file name it isn't possible to
create a second file which has a name that ends on the first files name
(for example ets.beam and sets.beam). This patch fixes that.

Update #3258.

Files:
2 edited

Legend:

Unmodified
Added
Removed
  • cpukit/libfs/src/dosfs/msdos_misc.c

    r3f575da r2fe3687  
    15651565                    {
    15661566                        if (lfn_entry ||
    1567                             lfn_checksum != msdos_lfn_checksum(entry))
    1568                             entry_matched = false;
    1569                         else if (name_len_remaining == 0) {
     1567                            name_len_remaining > 0 ||
     1568                            lfn_checksum != msdos_lfn_checksum(entry)) {
     1569                            msdos_prepare_for_next_entry(&lfn_start,
     1570                                                         &entry_matched,
     1571                                                         &name_len_remaining,
     1572                                                         name_len_for_compare);
     1573                        } else if (name_len_remaining == 0) {
    15701574                            filename_matched = true;
    15711575                            rc = msdos_on_entry_found (
  • testsuites/fstests/fsdosfsname01/init.c

    r3f575da r2fe3687  
    11031103}
    11041104
     1105static void test_end_of_string_matches_2( void )
     1106{
     1107  int rc;
     1108  int fd;
     1109
     1110  fd = open( MOUNT_DIR "/ets.beam", O_RDWR | O_CREAT,
     1111             S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH );
     1112  rtems_test_assert( fd >= 0 );
     1113  rc = close( fd );
     1114  rtems_test_assert( rc == 0 );
     1115
     1116  fd = open( MOUNT_DIR "/sets.beam", O_RDWR | O_CREAT,
     1117             S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH );
     1118  rtems_test_assert( fd >= 0 );
     1119  rc = close( fd );
     1120  rtems_test_assert( rc == 0 );
     1121
     1122  rc = unlink( MOUNT_DIR "/sets.beam" );
     1123  rtems_test_assert( rc == 0 );
     1124
     1125  rc = unlink( MOUNT_DIR "/ets.beam" );
     1126  rtems_test_assert( rc == 0 );
     1127}
     1128
    11051129static void test_full_8_3_name( void )
    11061130{
     
    11571181{
    11581182  test_end_of_string_matches();
     1183  test_end_of_string_matches_2();
    11591184  test_full_8_3_name();
    11601185  test_file_with_same_name_as_volume_label();
Note: See TracChangeset for help on using the changeset viewer.