use free instead of free_and_zero (it's not available in this branch and zero-ing...
[monky] / src / top.c
index cdee265..18b4ee6 100644 (file)
--- a/src/top.c
+++ b/src/top.c
@@ -11,7 +11,7 @@
  *
  * Copyright (c) 2005 Adi Zaimi, Dan Piponi <dan@tanelorn.demon.co.uk>,
  *                                       Dave Clark <clarkd@skynet.ca>
- * Copyright (c) 2005-2009 Brenden Matthews, Philip Kovacs, et. al.
+ * Copyright (c) 2005-2010 Brenden Matthews, Philip Kovacs, et. al.
  *     (see AUTHORS)
  * All rights reserved.
  *
@@ -880,16 +880,22 @@ int parse_top_args(const char *s, const char *arg, struct text_object *obj)
 #else /* IOSTATS */
                        NORM_ERR("must be one of: name, cpu, pid, mem, time, mem_res, mem_vsize");
 #endif /* IOSTATS */
+                       free(td->s);
+                       free(obj->data.opaque);
                        return 0;
                }
                if (n < 1 || n > 10) {
                        NORM_ERR("invalid num arg for top. Must be between 1 and 10.");
+                       free(td->s);
+                       free(obj->data.opaque);
                        return 0;
                } else {
                        td->num = n - 1;
                }
        } else {
                NORM_ERR("invalid argument count for top");
+               free(td->s);
+               free(obj->data.opaque);
                return 0;
        }
        return 1;