From: Christian Brauner Date: Mon, 4 Dec 2017 00:34:50 +0000 (+0100) Subject: conf: prevent null pointer dereference X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=053ec2681855075b575c2252e9d1729fed495a9b;p=thirdparty%2Flxc.git conf: prevent null pointer dereference Signed-off-by: Christian Brauner --- diff --git a/src/lxc/conf.c b/src/lxc/conf.c index ad9505c57..fb7f80dcc 100644 --- a/src/lxc/conf.c +++ b/src/lxc/conf.c @@ -1739,11 +1739,12 @@ static int mount_entry(const char *fsname, const char *target, if (ret < 0) { if (optional) { INFO("Failed to mount \"%s\" on \"%s\" (optional): %s", - fsname, target, strerror(errno)); + fsname ? fsname : "(null)", target, strerror(errno)); return 0; } - SYSERROR("Failed to mount \"%s\" on \"%s\"", fsname, target); + SYSERROR("Failed to mount \"%s\" on \"%s\"", + fsname ? fsname : "(null)", target); return -1; } @@ -1751,13 +1752,12 @@ static int mount_entry(const char *fsname, const char *target, unsigned long rqd_flags = 0; DEBUG("Remounting \"%s\" on \"%s\" to respect bind or remount " - "options", - fsname ? fsname : "(none)", target ? target : "(none)"); + "options", fsname ? fsname : "(none)", target ? target : "(none)"); if (mountflags & MS_RDONLY) rqd_flags |= MS_RDONLY; #ifdef HAVE_STATVFS - if (statvfs(fsname, &sb) == 0) { + if (fsname && statvfs(fsname, &sb) == 0) { unsigned long required_flags = rqd_flags; if (sb.f_flag & MS_NOSUID) @@ -1796,12 +1796,14 @@ static int mount_entry(const char *fsname, const char *target, if (ret < 0) { if (optional) { INFO("Failed to mount \"%s\" on \"%s\" " - "(optional): %s", fsname, target, + "(optional): %s", + fsname ? fsname : "(null)", target, strerror(errno)); return 0; } - SYSERROR("Failed to mount \"%s\" on \"%s\"", fsname, target); + SYSERROR("Failed to mount \"%s\" on \"%s\"", + fsname ? fsname : "(null)", target); return -1; } } @@ -1809,8 +1811,8 @@ static int mount_entry(const char *fsname, const char *target, #ifdef HAVE_STATVFS skipremount: #endif - DEBUG("Mounted \"%s\" on \"%s\" with filesystem type \"%s\"", fsname, - target, fstype); + DEBUG("Mounted \"%s\" on \"%s\" with filesystem type \"%s\"", + fsname ? fsname : "(null)", target, fstype); return 0; } diff --git a/src/lxc/utils.c b/src/lxc/utils.c index ab7141770..bfacbf45f 100644 --- a/src/lxc/utils.c +++ b/src/lxc/utils.c @@ -1705,7 +1705,7 @@ int safe_mount(const char *src, const char *dest, const char *fstype, close(destfd); if (ret < 0) { errno = saved_errno; - SYSERROR("Failed to mount %s onto %s", src, dest); + SYSERROR("Failed to mount %s onto %s", src ? src : "(null)", dest); return ret; }