Re: [PATCH 2/4] git-archive: wire up TAR format.
- From
- Franck Bui-Huu <vagabon.xyz@gmail.com>
- Date
- Sep 9, 2006, 15:10 UTC
- Message-ID
- <cda58cb80609090810t6fdab535r761636e65205a0f@mail.gmail.com>
- In-Reply-To
- <7vk64derfd.fsf@assigned-by-dhcp.cox.net>
2006/9/9, Junio C Hamano <junkio@cox.net>:
Show 20 quoted lines
> Junio C Hamano <junkio@cox.net> writes: > > > Rene Scharfe <rene.scharfe@lsrfire.ath.cx> writes: > > > >> I did not sign off this exact patch. I wrote and submitted the > >> builtin-tar-tree.c part, with memory leak and all, then sent a note > >> on where the leak needs to be plugged. You put it together and > >> converted it to struct archiver_args. I'd very much have liked to > >> see a comment stating this. Or simply just say "based on code by > >> Rene" or something. The same is true for patch 3/4. > >>... > >> Especially I would not have signed off this invisible comment. ;) > > > > I take your response is a mild NAK. > > Just to reduce everybody's pain, why don't I fix them up and > push out the 4 series in "pu" with attribution clarification and > review comments from Rene in mind, so that you two can Ack them? > After that they will be placed on "next". >
Almost Acked by me, except you've missed some Rene's comments. And more important I fixed an "uninitialized variable" bug. See patch below.
Show 5 quoted lines
> I needed to apply small tweaks on 1/4 (ANSI-C pedantic did not > like empty struct initializers) and 4/4 (the updated 1/1 needed > the way struct archiver is initialized and used be different > from the original one) as well. >
thanks for that.
-- >8 --
diff --git a/builtin-archive.c b/builtin-archive.c index 0a02519..9b90d87 100644 --- a/builtin-archive.c +++ b/builtin-archive.c @@ -28,7 +28,7 @@ static int run_remote_archiver(struct ar sprintf(buf, "git-upload-archive"); - url = strdup(ar->remote); + url = xstrdup(ar->remote); pid = git_connect(fd, url, buf); if (pid < 0) return pid; @@ -101,6 +101,7 @@ void parse_treeish_arg(const char **argv commit_sha1 = commit->object.sha1; archive_time = commit->date; } else { + commit_sha1 = NULL; archive_time = time(NULL); } @@ -141,7 +142,7 @@ int parse_archive_args(int argc, const c { const char *extra_argv[MAX_EXTRA_ARGS]; int extra_argc = 0; - const char *format = NULL; /* some default values */ + const char *format = NULL; const char *remote = NULL; const char *base = ""; int list = 0; @@ -171,6 +172,8 @@ int parse_archive_args(int argc, const c break; } if (arg[0] == '-') { + if (extra_argc > MAX_EXTRA_ARGS - 1) + die("Too many extra options"); extra_argv[extra_argc++] = arg; continue; } @@ -185,7 +188,7 @@ int parse_archive_args(int argc, const c die("--list and --remote are mutually exclusive"); } if (argc - i < 1) { - die("%s", archive_usage); + usage(archive_usage); } if (!format){ die("You must specify an archive format");