From 93dda65354e502e8b8db07f85b668710dd0aac68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=83=AD=E4=BC=9F=E5=85=89?= Date: Mon, 21 Mar 2022 20:20:23 +0800 Subject: [PATCH] config rewrite failed save errno in case of being tainted (#10461) errno would be potentially tainted during the serverLog() by the file io functions, such as fopen and fflush. --- src/config.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/config.c b/src/config.c index 182da1961..c45cf3ff0 100644 --- a/src/config.c +++ b/src/config.c @@ -3033,8 +3033,10 @@ void configRewriteCommand(client *c) { return; } if (rewriteConfig(server.configfile, 0) == -1) { - serverLog(LL_WARNING,"CONFIG REWRITE failed: %s", strerror(errno)); - addReplyErrorFormat(c,"Rewriting config file: %s", strerror(errno)); + /* save errno in case of being tainted. */ + int err = errno; + serverLog(LL_WARNING,"CONFIG REWRITE failed: %s", strerror(err)); + addReplyErrorFormat(c,"Rewriting config file: %s", strerror(err)); } else { serverLog(LL_WARNING,"CONFIG REWRITE executed with success."); addReply(c,shared.ok);