mount: improve handling mounts table size
authorRafał Miłecki <rafal@milecki.pl>
Thu, 8 Feb 2018 13:50:19 +0000 (14:50 +0100)
committerRafał Miłecki <rafal@milecki.pl>
Mon, 12 Feb 2018 09:52:16 +0000 (10:52 +0100)
This is static array with a size set to MAX_MOUNTED. Old code:
1) Was never using the last table entry/row
2) Was logging the same message for every mount entry above limit

This fixes off-by-one, moves limit check to the proper place and uses
"break" when needed.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
mount.c

diff --git a/mount.c b/mount.c
index db77f10266fdd28a70b576b5d0dc5583e5a58046..9cb1a43ce3d5173d3b2fec9de5a8d92ded42095f 100644 (file)
--- a/mount.c
+++ b/mount.c
@@ -626,6 +626,12 @@ static void mount_check_mount_list(void)
        while(fgets(tmp, 256, fp) != NULL)
        {
                char *t, *t2;
+
+               if (mounted_count + 1 > MAX_MOUNTED) {
+                       log_printf("found more than %d mounts \n", MAX_MOUNTED);
+                       break;
+               }
+
                t = strstr(tmp, " ");
                if(t)
                {
@@ -651,10 +657,8 @@ static void mount_check_mount_list(void)
                        mounted[mounted_count][0],
                        mounted[mounted_count][1],
                        mounted[mounted_count][2]);*/
-               if(mounted_count < MAX_MOUNTED - 1)
-                       mounted_count++;
-               else
-                       log_printf("found more than %d mounts \n", MAX_MOUNTED);
+
+               mounted_count++;
        }
        fclose(fp);
 }