Memory leak fixed in file : mount_bsd.c
authoritsdeepak <deepak.sn@samsung.com>
Mon, 19 Dec 2016 09:26:40 +0000 (14:56 +0530)
committerNikolaus Rath <Nikolaus@rath.org>
Sat, 24 Dec 2016 02:35:13 +0000 (18:35 -0800)
lib/mount_bsd.c

index f0eea6f29797c04cec70bc0e01acf6bfb8862abc..5e1ea1d3914fd078f690c2e410a13cf8380ba119 100644 (file)
@@ -255,10 +255,16 @@ mount:
                if (pid == 0) {
                        const char *argv[32];
                        int a = 0;
-
-                       if (! fdnam && asprintf(&fdnam, "%d", fd) == -1) {
-                               perror("fuse: failed to assemble mount arguments");
-                               exit(1);
+                       int ret = -1; 
+                       
+                       if (! fdnam)
+                       {
+                               ret = asprintf(&fdnam, "%d", fd); 
+                               if(ret == -1)
+                               {
+                                       perror("fuse: failed to assemble mount arguments");
+                                       exit(1);
+                               }
                        }
 
                        argv[a++] = mountprog;
@@ -267,6 +273,10 @@ mount:
                                argv[a++] = opts;
                        }
                        argv[a++] = fdnam;
+                       
+                       if(ret != -1)
+                               free(fdnam);
+                       
                        argv[a++] = mountpoint;
                        argv[a++] = NULL;
                        execvp(mountprog, (char **) argv);