← Commit list

b1726785f

Denis Vlasenko
Denis Vlasenko
2006-09-29
SOURCE BUG Duration: 60s

Subject

mount: fix bug 946 (mount -f should update mtab)

SOURCE BUG

This commit was genuinely broken at the time (not related to our build system): scripts/config/mkconfigs.c (2005-08-01 - 2006-10-05 arasi) uretilen bbconfigopts.h icine .config satirlarini kacissiz, ham newline'larla gömüyordu - gecerli C degildi, busybox'un kendi bb_mkdep araci bile parse edemiyordu (7d219aab7 ile duzeltildi, mkconfigs shell scripte cevrildi)

→ Bu hatanin tam hikayesini ve duzeltme diffini gor

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

util-linux/mount.c+6 -6
@@ -224,9 +224,9 @@ static int fakeIt;
// NB: mp->xxx fields may be trashed on exit
static int mount_it_now(struct mntent *mp, int vfsflags, char *filteropts)
{
- int rc;
+ int rc = 0;
- if (fakeIt) return 0;
+ if (fakeIt) goto mtab;
// Mount, with fallback to read-only if necessary.
@@ -247,7 +247,7 @@ static int mount_it_now(struct mntent *mp, int vfsflags, char *filteropts)
/* If the mount was successful, and we're maintaining an old-style
* mtab file by hand, add the new entry to it now. */
-
+mtab:
if (ENABLE_FEATURE_MTAB_SUPPORT && useMtab && !rc && !(vfsflags & MS_REMOUNT)) {
char *fsname;
FILE *mountTable = setmntent(bb_path_mtab_file, "a+");
@@ -1452,8 +1452,8 @@ int mount_main(int argc, char **argv)
if (opt & 0x4) append_mount_options(&cmdopts, "ro"); // -r
if (opt & 0x8) append_mount_options(&cmdopts, "rw"); // -w
//if (opt & 0x10) // -a
- if (opt & 0x20) USE_FEATURE_MTAB_SUPPORT(useMtab = FALSE); // -n
- if (opt & 0x40) USE_FEATURE_MTAB_SUPPORT(fakeIt = FALSE); // -f
+ if (opt & 0x20) USE_FEATURE_MTAB_SUPPORT(useMtab = 0); // -n
+ if (opt & 0x40) USE_FEATURE_MTAB_SUPPORT(fakeIt = 1); // -f
//if (opt & 0x80) // -v: ignore
argv += optind;
argc -= optind;
@@ -1513,7 +1513,7 @@ int mount_main(int argc, char **argv)
if (parse_mount_options(cmdopts,0) & MS_REMOUNT)
fstabname = bb_path_mtab_file;
- else fstabname="/etc/fstab";
+ else fstabname = "/etc/fstab";
fstab = setmntent(fstabname,"r");
if (!fstab)