Whamcloud - gitweb
libext2fs: fix unexpected NULL variable
authorLukas Czerner <lczerner@redhat.com>
Fri, 6 Aug 2021 09:58:16 +0000 (11:58 +0200)
committerTheodore Ts'o <tytso@mit.edu>
Tue, 10 Aug 2021 15:01:06 +0000 (11:01 -0400)
The ext2fs_check_mount_point() function can be called with mtpt being
NULL as for example from ext2fs_check_if_mounted(). However in the
is_swap_device condition we use the mtpt in strncpy without checking
whether it is non-null first.

This should not be a problem on linux since the previous attempt to open
the device exclusively would have prevented us from ever reaching the
problematic strncpy. However it's still a bug and can cause problems on
other systems, fix it by conditioning strncpy on mtpt not being null.

Signed-off-by: Lukas Czerner <lczerner@redhat.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
lib/ext2fs/ismounted.c

index c9e6a9d..aee7d72 100644 (file)
@@ -393,7 +393,8 @@ errcode_t ext2fs_check_mount_point(const char *device, int *mount_flags,
 
        if (is_swap_device(device)) {
                *mount_flags = EXT2_MF_MOUNTED | EXT2_MF_SWAP;
-               strncpy(mtpt, "<swap>", mtlen);
+               if (mtpt)
+                       strncpy(mtpt, "<swap>", mtlen);
        } else {
 #ifdef HAVE_SETMNTENT
                retval = check_mntent(device, mount_flags, mtpt, mtlen);