From: Mark Jamsek Subject: small fix: return err instead of NULL To: Game of Trees Date: Fri, 3 Feb 2023 17:22:15 +1100 I stumbled upon another case in got.c where we mistakenly return NULL instead of err, so I grepped the codebase and caught a couple more in gotwebd/got_operations.c and lib/object_open_privsep.c There's also a small typo and style(9) fix in gotd/repo_write.c ----------------------------------------------- commit adcf89fdd9ac45e9f4eb4631af7f170343896bb3 (main) from: Mark Jamsek date: Fri Feb 3 06:07:51 2023 UTC typo and style(9): do not use function calls in initialisers. M gotd/repo_write.c | 4+ 2- 1 file changed, 4 insertions(+), 2 deletions(-) diff 6b697adbe4a7eb0024dd06c695a5a922d15bb307 adcf89fdd9ac45e9f4eb4631af7f170343896bb3 commit - 6b697adbe4a7eb0024dd06c695a5a922d15bb307 commit + adcf89fdd9ac45e9f4eb4631af7f170343896bb3 blob - 06a5bdff23de1154538510232e0cf2998523a312 blob + b425ba49c41d4c20c076b2c6c6a77b84366abf0d --- gotd/repo_write.c +++ gotd/repo_write.c @@ -938,15 +938,17 @@ recv_packfile(int *have_packfile, struct imsg *imsg) } for (i = 0; i < nitems(tempfiles); i++) { - int fd = dup(repo_tempfiles[i].fd); + int fd; FILE *f; + + fd = dup(repo_tempfiles[i].fd); if (fd == -1) { err = got_error_from_errno("dup"); goto done; } f = fdopen(fd, "w+"); if (f == NULL) { - err = got_error_from_errno("dup"); + err = got_error_from_errno("fdopen"); close(fd); goto done; } ----------------------------------------------- commit 6b697adbe4a7eb0024dd06c695a5a922d15bb307 from: Mark Jamsek date: Fri Feb 3 06:07:09 2023 UTC fix mistaken instances returning NULL instead of err While here, for consistency, check dup() return value for -1 rather than < 0. M got/got.c | 1+ 1- M gotwebd/got_operations.c | 2+ 2- M lib/object_open_privsep.c | 1+ 1- 3 files changed, 4 insertions(+), 4 deletions(-) diff 49672ed88ead342f74c0a8f753e8606a9f9b7818 6b697adbe4a7eb0024dd06c695a5a922d15bb307 commit - 49672ed88ead342f74c0a8f753e8606a9f9b7818 commit + 6b697adbe4a7eb0024dd06c695a5a922d15bb307 blob - 8b62a11fd84c9ac104aee2c98521c54f0ea943ec blob + fe66f5fc26c7e236053a98d519915b574179a529 --- got/got.c +++ got/got.c @@ -2088,7 +2088,7 @@ done: done: free(id); free(id_str); - return NULL; + return err; } static const struct got_error * blob - e22d214bd2d3e68c26a5394cc271c0a6e204a5aa blob + d5d0541d8afdcc978ab860c284e920413c003e97 --- gotwebd/got_operations.c +++ gotwebd/got_operations.c @@ -93,8 +93,8 @@ got_gotweb_dupfd(int *priv_fd, int *fd) { *fd = dup(*priv_fd); - if (*fd < 0) - return NULL; + if (*fd == -1) + return got_error_from_errno("dup"); return NULL; } blob - 86db216cc1bca6e3651b62b90bb2d68c238065dd blob + f80d86a8686711ff5888dd6847e0d84b98bc0672 --- lib/object_open_privsep.c +++ lib/object_open_privsep.c @@ -104,7 +104,7 @@ done: close(accumfd); } else pack->child_has_tempfiles = 1; - return NULL; + return err; } static const struct got_error * -- Mark Jamsek GPG: F2FF 13DE 6A06 C471 CA80 E6E2 2930 DC66 86EE CF68