From 8315588b59bea45c4b82451cc3ac337fa5c68526 Mon Sep 17 00:00:00 2001 From: Johannes Schindelin Date: Tue, 6 Mar 2007 22:57:07 +0100 Subject: bundle: fix wrong check of read_header()'s return value & add tests If read_header() fails, it returns <0, not 0. Further, an open(/dev/null) was not checked for errors. Also, this adds two tests to make sure that the bundle file looks correct, by checking if it has the header has the expected form, and that the pack contains the right amount of objects. Signed-off-by: Johannes Schindelin Signed-off-by: Junio C Hamano --- builtin-bundle.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'builtin-bundle.c') diff --git a/builtin-bundle.c b/builtin-bundle.c index d0c361763c..3b3bc2582d 100644 --- a/builtin-bundle.c +++ b/builtin-bundle.c @@ -404,6 +404,8 @@ static int unbundle(struct bundle_header *header, int bundle_fd, if (verify_bundle(header, 0)) return -1; dev_null = open("/dev/null", O_WRONLY); + if (dev_null < 0) + return error("Could not open /dev/null"); pid = fork_with_pipe(argv_index_pack, &bundle_fd, &dev_null); if (pid < 0) return error("Could not spawn index-pack"); @@ -440,7 +442,7 @@ int cmd_bundle(int argc, const char **argv, const char *prefix) memset(&header, 0, sizeof(header)); if (strcmp(cmd, "create") && - !(bundle_fd = read_header(bundle_file, &header))) + (bundle_fd = read_header(bundle_file, &header)) < 0) return 1; if (!strcmp(cmd, "verify")) { -- cgit v1.2.3