diff options
author | Daniel P. Berrange <berrange@redhat.com> | 2011-07-12 11:27:38 +0100 |
---|---|---|
committer | Daniel P. Berrange <berrange@redhat.com> | 2011-07-12 11:27:38 +0100 |
commit | cf28bcf512c878fe8c26fcbc2801510dad75ad4a (patch) | |
tree | 08ee952d111f1766a4b3c14606e8549aeb386847 /src/virt-viewer-main.c | |
parent | 1def55556f4b2c37e349117ccfcf1c33130abd10 (diff) | |
download | virt-viewer-cf28bcf512c878fe8c26fcbc2801510dad75ad4a.tar.gz virt-viewer-cf28bcf512c878fe8c26fcbc2801510dad75ad4a.tar.xz virt-viewer-cf28bcf512c878fe8c26fcbc2801510dad75ad4a.zip |
Fix leak of command line arguments
Diffstat (limited to 'src/virt-viewer-main.c')
-rw-r--r-- | src/virt-viewer-main.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/virt-viewer-main.c b/src/virt-viewer-main.c index e3d4b54..749365c 100644 --- a/src/virt-viewer-main.c +++ b/src/virt-viewer-main.c @@ -41,7 +41,7 @@ int main(int argc, char **argv) { GOptionContext *context; GError *error = NULL; - int ret; + int ret = 1; char *uri = NULL; int zoom = 100; gchar **args = NULL; @@ -92,19 +92,19 @@ int main(int argc, char **argv) error->message, gettext(help_msg)); g_error_free(error); - return 1; + goto cleanup; } g_option_context_free(context); if (!args || (g_strv_length(args) != 1)) { fprintf(stderr, _("\nUsage: %s [OPTIONS] DOMAIN-NAME|ID|UUID\n\n%s\n\n"), argv[0], help_msg); - return 1; + goto cleanup; } if (zoom < 10 || zoom > 200) { fprintf(stderr, "Zoom level must be within 10-200\n"); - return 1; + goto cleanup; } ret = virt_viewer_start(uri, args[0], zoom, direct, waitvm, reconnect, verbose, debug, fullscreen, NULL); @@ -113,7 +113,11 @@ int main(int argc, char **argv) gtk_main(); - return 0; + cleanup: + g_free(uri); + g_strfreev(args); + + return ret; } /* |