Print this page
5083 avoid undefined order of operations in assignments

@@ -2808,11 +2808,11 @@
         (void) makedir(lost_found_dir, 2);
         for (i = DIRBLKSIZ; i < sblock.fs_bsize; i += DIRBLKSIZ) {
                 bcopy(&lost_found_dir[2], &buf[i], DIRSIZ(&lost_found_dir[2]));
         }
         node.i_number = LOSTFOUNDINO;
-        node.i_smode = node.i_mode = IFDIR | 0700;
+        node.i_smode = IFDIR | 0700;
         node.i_nlink = 2;
         node.i_size = sblock.fs_bsize;
         node.i_db[0] = alloc((int)node.i_size, node.i_mode);
         node.i_blocks = btodb(fragroundup(&sblock, (int)node.i_size));
         IRANDOMIZE(&node.i_ic);

@@ -2821,11 +2821,11 @@
 #endif
         /*
          * create the root directory
          */
         node.i_number = UFSROOTINO;
-        node.i_mode = node.i_smode = IFDIR | UMASK;
+        node.i_mode = IFDIR | UMASK;
         node.i_nlink = PREDEFDIR;
         node.i_size = makedir(root_dir, PREDEFDIR);
         node.i_db[0] = alloc(sblock.fs_fsize, node.i_mode);
         /* i_size < 2GB because we are initializing the file system */
         node.i_blocks = btodb(fragroundup(&sblock, (int)node.i_size));