From 8a2c0876754baa2085bce94d6778b5d2f4aee937 Mon Sep 17 00:00:00 2001 From: Elliott Hughes Date: Wed, 1 Jul 2015 15:00:06 -0500 Subject: [PATCH] Fix segfault with "mount -o ro,remount". Or any call to comma_scan where 'opt' appears as the last item in 'optlist'. --- lib/getmountlist.c | 2 +- tests/mount.test | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/getmountlist.c b/lib/getmountlist.c index 30fb9a35..4fec41b7 100644 --- a/lib/getmountlist.c +++ b/lib/getmountlist.c @@ -78,7 +78,7 @@ int comma_scan(char *optlist, char *opt, int clean) no = 2*(*s == 'n' && s[1] == 'o'); if (optlen == len-no && !strncmp(opt, s+no, optlen)) { got = !no; - if (clean) memmove(s, optlist, strlen(optlist)+1); + if (clean && optlist) memmove(s, optlist, strlen(optlist)+1); } } diff --git a/tests/mount.test b/tests/mount.test index 1fdc00f7..d64bfc62 100755 --- a/tests/mount.test +++ b/tests/mount.test @@ -82,6 +82,10 @@ testing "mount -o ro $tmp_b_fs /mnt" \ "mount -o ro $tmp_b_fs /mnt >/dev/null 2>&1 && mkdir /mnt/testDir 2>/dev/null || sleep 1 && umount /mnt" "" "" "" reCreateTmpFs +testing "mount -o ro,remount $tmp_b_fs /mnt" \ + "mount -o ro $tmp_b_fs /mnt >/dev/null 2>&1 && + mkdir /mnt/testDir 2>/dev/null || sleep 1 && umount /mnt" "" "" "" +reCreateTmpFs umount testDir1 rm -f $tmp_b_fs -- 2.11.0