summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPablo Barciela <[email protected]>2019-04-19 04:17:15 +0200
committerPablo Barciela <[email protected]>2019-04-23 14:37:40 +0200
commite41acdb5cade8c0d8855dcfe583c3edd31b9b9bf (patch)
tree9bc6b6afad87a6cfc8358aa1efe1dec35c07ef02
parent44c9c2ba23e1e4d2b7d615f7b8a6a5edf15c5ec7 (diff)
downloadmate-calc-e41acdb5cade8c0d8855dcfe583c3edd31b9b9bf.tar.bz2
mate-calc-e41acdb5cade8c0d8855dcfe583c3edd31b9b9bf.tar.xz
mate-calc: Fix memory leak
'g_path_get_basename' needs to be freed Fix memory leak detected by valgrind: valgrind --leak-check=full mate-calc ==17452== 10 bytes in 1 blocks are definitely lost in loss record 501 of 10,243 ==17452== at 0x483577F: malloc (vg_replace_malloc.c:299) ==17452== by 0x5657900: g_malloc (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.5800.3) ==17452== by 0x563E84A: g_path_get_basename (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.5800.3) ==17452== by 0x11A9E3: main (in /usr/bin/mate-calc)
-rw-r--r--src/mate-calc.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/mate-calc.c b/src/mate-calc.c
index b31d2f1..05e40dd 100644
--- a/src/mate-calc.c
+++ b/src/mate-calc.c
@@ -131,20 +131,24 @@ get_options(int argc, char *argv[])
if (strcmp(arg, "-v") == 0 ||
strcmp(arg, "--version") == 0) {
version(progname);
+ g_free(progname);
exit(0);
}
else if (strcmp(arg, "-h") == 0 ||
strcmp(arg, "-?") == 0 ||
strcmp(arg, "--help") == 0) {
usage(progname, TRUE, FALSE);
+ g_free(progname);
exit(0);
}
else if (strcmp(arg, "--help-all") == 0) {
usage(progname, TRUE, TRUE);
+ g_free(progname);
exit(0);
}
else if (strcmp(arg, "--help-gtk") == 0) {
usage(progname, FALSE, TRUE);
+ g_free(progname);
exit(0);
}
else if (strcmp(arg, "-s") == 0 ||
@@ -155,6 +159,7 @@ get_options(int argc, char *argv[])
/* Error printed to stderr when user uses --solve argument without an equation */
_("Argument --solve requires an equation to solve"));
fprintf(stderr, "\n");
+ g_free(progname);
exit(1);
}
else
@@ -166,9 +171,12 @@ get_options(int argc, char *argv[])
_("Unknown argument '%s'"), arg);
fprintf(stderr, "\n");
usage(progname, TRUE, FALSE);
+ g_free(progname);
exit(1);
}
}
+
+ g_free(progname);
}
static void