[PATCH v6? 17/17] refs API: don't leak "errno" in run_transaction_hook()
- From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
- Date
- Jul 11, 2021, 16:30 UTC
- Message-ID
- <patch-17.17-f914df0bb25-20210711T162803Z-avarab@gmail.com>
- In-Reply-To
- <cover-00.17-00000000000-20210711T162803Z-avarab@gmail.com>
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 --git a/refs.c b/refs.c index 3357ba14e1d..f1477eed27a 100644 --- a/refs.c +++ b/refs.c @@ -2108,8 +2108,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; } }
-- 2.32.0-dev