I don't know why I wasn't seeing this yesterday, but I can't _not_ see
it today:

  newfstatat(AT_FDCWD, "/dev/block/loop6", {st_mode=S_IFBLK|0600,
st_rdev=makedev(7, 48), ...}, 0) = 0
  openat(AT_FDCWD, "/sys/block/loop48/loop/backing_file", O_RDONLY) = -1
ENOENT (No such file or directory)
  --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=NULL} ---
---
 toys/lsb/mount.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
From 9773e6b5d82cfebd52a56a750549501408c0a785 Mon Sep 17 00:00:00 2001
From: Elliott Hughes <e...@google.com>
Date: Wed, 20 Mar 2024 13:54:35 -0700
Subject: [PATCH] mount: avoid deferencing NULL.

I don't know why I wasn't seeing this yesterday, but I can't _not_ see
it today:

  newfstatat(AT_FDCWD, "/dev/block/loop6", {st_mode=S_IFBLK|0600, st_rdev=makedev(7, 48), ...}, 0) = 0
  openat(AT_FDCWD, "/sys/block/loop48/loop/backing_file", O_RDONLY) = -1 ENOENT (No such file or directory)
  --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=NULL} ---
---
 toys/lsb/mount.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/toys/lsb/mount.c b/toys/lsb/mount.c
index 2b397f34..9d3e3e22 100644
--- a/toys/lsb/mount.c
+++ b/toys/lsb/mount.c
@@ -394,7 +394,7 @@ void mount_main(void)
       }
       xprintf("%s on %s type %s (%s%s)\n", s, mm->dir, mm->type, mm->opts, ss);
       if (s != mm->device) free(s);
-      if (*ss) free(ss);
+      if (ss && *ss) free(ss);
     }
 
   // two arguments
-- 
2.44.0.396.g6e790dbe36-goog

_______________________________________________
Toybox mailing list
Toybox@lists.landley.net
http://lists.landley.net/listinfo.cgi/toybox-landley.net

Reply via email to