From 86a97737e3a4b746ef6b6bd9a6cc7528769627cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Love=20H=C3=B6rnquist=20=C3=85strand?= Date: Sun, 25 Jan 2009 00:32:40 +0000 Subject: [PATCH] make work git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@24368 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/asn1/main.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/lib/asn1/main.c b/lib/asn1/main.c index 0f46e34b7..763d31a27 100644 --- a/lib/asn1/main.c +++ b/lib/asn1/main.c @@ -96,6 +96,8 @@ main(int argc, char **argv) const char *file; const char *name = NULL; int optidx = 0; + char **arg = NULL; + size_t len, i; setprogname(argv[0]); if(getarg(args, num_args, argc, argv, &optidx)) @@ -129,8 +131,6 @@ main(int argc, char **argv) * Parse extra options file */ if (option_file) { - char **arg = NULL; - size_t len, i; char buf[1024]; FILE *opt; @@ -153,12 +153,13 @@ main(int argc, char **argv) perror("malloc"); exit(1); } - arg[i] = strdup(buf); - if (arg[i] == NULL) { + arg[len] = strdup(buf); + if (arg[len] == NULL) { perror("strdup"); exit(1); } - arg[i + 1] = NULL; + arg[len + 1] = NULL; + len++; } fclose(opt); @@ -170,10 +171,6 @@ main(int argc, char **argv) fprintf(stderr, "extra args"); exit(1); } - - for (i = 1; i < len; i++) - free(arg[i]); - free(arg); } @@ -193,5 +190,11 @@ main(int argc, char **argv) if (one_code_file) close_codefile(); + if (arg) { + for (i = 1; i < len; i++) + free(arg[i]); + free(arg); + } + return 0; }