diff mbox series

[v2,19/21] refs API: don't expose "errno" in run_transaction_hook()

Message ID patch-v2-19.21-3d630872aff-20211016T093845Z-avarab@gmail.com (mailing list archive)
State Accepted
Commit 4755d7dff7a27f431493926541fd6aab2e860aa4
Headers show
Series refs: stop having the API set "errno" | expand

Commit Message

Ævar Arnfjörð Bjarmason Oct. 16, 2021, 9:39 a.m. UTC
In run_transaction_hook() we've checked errno since 67541597670 (refs:
implement reference transaction hook, 2020-06-19), let's reset errno
afterwards to make sure nobody using refs.c directly or indirectly
relies on it.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 refs.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
diff mbox series

Patch

diff --git a/refs.c b/refs.c
index 43fe9e6d89d..e90c59539b4 100644
--- a/refs.c
+++ b/refs.c
@@ -2096,8 +2096,11 @@  static int run_transaction_hook(struct ref_transaction *transaction,
 			    update->refname);
 
 		if (write_in_full(proc.in, buf.buf, buf.len) < 0) {
-			if (errno != EPIPE)
+			if (errno != EPIPE) {
+				/* Don't leak errno outside this API */
+				errno = 0;
 				ret = -1;
+			}
 			break;
 		}
 	}