Skip to content

Commit 28e88bc

Browse files
committed
update
1 parent 055a894 commit 28e88bc

3 files changed

Lines changed: 76 additions & 46 deletions

File tree

usr.sbin/makefs/ffs/ufs_inode.h

Lines changed: 38 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,6 @@
3939
* @(#)inode.h 8.9 (Berkeley) 5/14/95
4040
*/
4141

42-
union dinode {
43-
struct ufs1_dinode ffs1_din;
44-
struct ufs2_dinode ffs2_din;
45-
};
46-
4742
struct inode {
4843
ino_t i_number; /* The identity of the inode. */
4944
struct vnode *i_devvp; /* vnode pointer (contains fsopts) */
@@ -52,45 +47,45 @@ struct inode {
5247
uint64_t i_size;
5348
};
5449

55-
#define i_ffs1_atime i_din.ffs1_din.di_atime
56-
#define i_ffs1_atimensec i_din.ffs1_din.di_atimensec
57-
#define i_ffs1_blocks i_din.ffs1_din.di_blocks
58-
#define i_ffs1_ctime i_din.ffs1_din.di_ctime
59-
#define i_ffs1_ctimensec i_din.ffs1_din.di_ctimensec
60-
#define i_ffs1_db i_din.ffs1_din.di_db
61-
#define i_ffs1_flags i_din.ffs1_din.di_flags
62-
#define i_ffs1_gen i_din.ffs1_din.di_gen
63-
#define i_ffs11_gid i_din.ffs1_din.di_gid
64-
#define i_ffs1_ib i_din.ffs1_din.di_ib
65-
#define i_ffs1_mode i_din.ffs1_din.di_mode
66-
#define i_ffs1_mtime i_din.ffs1_din.di_mtime
67-
#define i_ffs1_mtimensec i_din.ffs1_din.di_mtimensec
68-
#define i_ffs1_nlink i_din.ffs1_din.di_nlink
69-
#define i_ffs1_rdev i_din.ffs1_din.di_rdev
70-
#define i_ffs1_shortlink i_din.ffs1_din.di_shortlink
71-
#define i_ffs1_size i_din.ffs1_din.di_size
72-
#define i_ffs1_uid i_din.ffs1_din.di_uid
50+
#define i_ffs1_atime i_din.dp1.di_atime
51+
#define i_ffs1_atimensec i_din.dp1.di_atimensec
52+
#define i_ffs1_blocks i_din.dp1.di_blocks
53+
#define i_ffs1_ctime i_din.dp1.di_ctime
54+
#define i_ffs1_ctimensec i_din.dp1.di_ctimensec
55+
#define i_ffs1_db i_din.dp1.di_db
56+
#define i_ffs1_flags i_din.dp1.di_flags
57+
#define i_ffs1_gen i_din.dp1.di_gen
58+
#define i_ffs11_gid i_din.dp1.di_gid
59+
#define i_ffs1_ib i_din.dp1.di_ib
60+
#define i_ffs1_mode i_din.dp1.di_mode
61+
#define i_ffs1_mtime i_din.dp1.di_mtime
62+
#define i_ffs1_mtimensec i_din.dp1.di_mtimensec
63+
#define i_ffs1_nlink i_din.dp1.di_nlink
64+
#define i_ffs1_rdev i_din.dp1.di_rdev
65+
#define i_ffs1_shortlink i_din.dp1.di_shortlink
66+
#define i_ffs1_size i_din.dp1.di_size
67+
#define i_ffs1_uid i_din.dp1.di_uid
7368

74-
#define i_ffs2_atime i_din.ffs2_din.di_atime
75-
#define i_ffs2_atimensec i_din.ffs2_din.di_atimensec
76-
#define i_ffs2_blocks i_din.ffs2_din.di_blocks
77-
#define i_ffs2_ctime i_din.ffs2_din.di_ctime
78-
#define i_ffs2_ctimensec i_din.ffs2_din.di_ctimensec
79-
#define i_ffs2_birthtime i_din.ffs2_din.di_birthtime
80-
#define i_ffs2_birthnsec i_din.ffs2_din.di_birthnsec
81-
#define i_ffs2_db i_din.ffs2_din.di_db
82-
#define i_ffs2_flags i_din.ffs2_din.di_flags
83-
#define i_ffs2_gen i_din.ffs2_din.di_gen
84-
#define i_ffs21_gid i_din.ffs2_din.di_gid
85-
#define i_ffs2_ib i_din.ffs2_din.di_ib
86-
#define i_ffs2_mode i_din.ffs2_din.di_mode
87-
#define i_ffs2_mtime i_din.ffs2_din.di_mtime
88-
#define i_ffs2_mtimensec i_din.ffs2_din.di_mtimensec
89-
#define i_ffs2_nlink i_din.ffs2_din.di_nlink
90-
#define i_ffs2_rdev i_din.ffs2_din.di_rdev
91-
#define i_ffs2_shortlink i_din.ffs2_din.di_shortlink
92-
#define i_ffs2_size i_din.ffs2_din.di_size
93-
#define i_ffs2_uid i_din.ffs2_din.di_uid
69+
#define i_ffs2_atime i_din.dp2.di_atime
70+
#define i_ffs2_atimensec i_din.dp2.di_atimensec
71+
#define i_ffs2_blocks i_din.dp2.di_blocks
72+
#define i_ffs2_ctime i_din.dp2.di_ctime
73+
#define i_ffs2_ctimensec i_din.dp2.di_ctimensec
74+
#define i_ffs2_birthtime i_din.dp2.di_birthtime
75+
#define i_ffs2_birthnsec i_din.dp2.di_birthnsec
76+
#define i_ffs2_db i_din.dp2.di_db
77+
#define i_ffs2_flags i_din.dp2.di_flags
78+
#define i_ffs2_gen i_din.dp2.di_gen
79+
#define i_ffs21_gid i_din.dp2.di_gid
80+
#define i_ffs2_ib i_din.dp2.di_ib
81+
#define i_ffs2_mode i_din.dp2.di_mode
82+
#define i_ffs2_mtime i_din.dp2.di_mtime
83+
#define i_ffs2_mtimensec i_din.dp2.di_mtimensec
84+
#define i_ffs2_nlink i_din.dp2.di_nlink
85+
#define i_ffs2_rdev i_din.dp2.di_rdev
86+
#define i_ffs2_shortlink i_din.dp2.di_shortlink
87+
#define i_ffs2_size i_din.dp2.di_size
88+
#define i_ffs2_uid i_din.dp2.di_uid
9489

9590
#undef DIP
9691
#define DIP(ip, field) \

usr.sbin/makefs/tests/makefs_cd9660_tests.sh

Lines changed: 37 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,8 @@ common_cleanup()
5151
check_base_iso9660_image_contents()
5252
{
5353
# Symlinks are treated like files when rockridge support isn't
54-
# specified
55-
check_image_contents "$@" -X c
54+
# specified, and directories cannot contain a '.'.
55+
check_image_contents "$@" -X c -X .g -X _g
5656

5757
atf_check -e empty -o empty -s exit:0 test -L $TEST_INPUTS_DIR/c
5858
atf_check -e empty -o empty -s exit:0 test -f $TEST_MOUNT_DIR/c
@@ -374,6 +374,39 @@ o_flag_rockridge_dev_nodes_cleanup()
374374
common_cleanup
375375
}
376376

377+
atf_test_case duplicate_names cleanup
378+
duplicate_names_head()
379+
{
380+
atf_set "descr" "Ensure shortened directory names are unique (PR283238)"
381+
}
382+
duplicate_names_body()
383+
{
384+
check_cd9660_support
385+
create_test_dirs
386+
387+
# Create three directories which are identical in the first 31 characters.
388+
dir_prefix="this_directory_name_is_31_chars"
389+
mkdir -p $TEST_INPUTS_DIR/${dir_prefix}1
390+
mkdir -p $TEST_INPUTS_DIR/${dir_prefix}2
391+
mkdir -p $TEST_INPUTS_DIR/${dir_prefix}3
392+
393+
atf_check -e empty -o empty -s exit:0 \
394+
$MAKEFS -o rockridge $TEST_IMAGE $TEST_INPUTS_DIR
395+
396+
# Disable Rock Ridge extensions to read the plain ISO Level 2 names.
397+
mount_image -r
398+
399+
# The specific way the short names are made unique is not important.
400+
# We verify only that there are three unique names and that the unique
401+
# part is at the end of the name.
402+
atf_check_equal $(ls -1 $TEST_MOUNT_DIR | sort | uniq | wc -l) 3
403+
atf_check_equal $(ls -1 $TEST_MOUNT_DIR | cut -c -29 | sort | uniq | wc -l) 1
404+
}
405+
duplicate_names_cleanup()
406+
{
407+
common_cleanup
408+
}
409+
377410
atf_init_test_cases()
378411
{
379412
atf_add_test_case D_flag
@@ -392,4 +425,6 @@ atf_init_test_cases()
392425
atf_add_test_case o_flag_publisher
393426
atf_add_test_case o_flag_rockridge
394427
atf_add_test_case o_flag_rockridge_dev_nodes
428+
429+
atf_add_test_case duplicate_names
395430
}

usr.sbin/makefs/tests/makefs_tests_common.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,6 @@ mount_image()
138138
atf_check -e empty -o save:$TEST_MD_DEVICE_FILE -s exit:0 \
139139
mdconfig -a -f $TEST_IMAGE
140140
atf_check -e empty -o empty -s exit:0 \
141-
$MOUNT /dev/$(cat $TEST_MD_DEVICE_FILE) $TEST_MOUNT_DIR
141+
$MOUNT ${1} /dev/$(cat $TEST_MD_DEVICE_FILE) $TEST_MOUNT_DIR
142142
}
143143

0 commit comments

Comments
 (0)