From: Denys Vlasenko <vda.linux@googlemail.com>
Date: Thu, 16 Feb 2017 19:04:19 +0000 (+0100)
Subject: udhcp: do not clobber errno by signal handler
X-Git-Tag: 1_27_0~119
X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=dc207f669675a271812a21b0ddbe3b894adf8e4c;p=oweals%2Fbusybox.git

udhcp: do not clobber errno by signal handler

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
---

diff --git a/networking/udhcp/signalpipe.c b/networking/udhcp/signalpipe.c
index 6355c5e90..30bccd6bf 100644
--- a/networking/udhcp/signalpipe.c
+++ b/networking/udhcp/signalpipe.c
@@ -25,9 +25,11 @@ static struct fd_pair signal_pipe;
 
 static void signal_handler(int sig)
 {
+	int sv = errno;
 	unsigned char ch = sig; /* use char, avoid dealing with partial writes */
 	if (write(signal_pipe.wr, &ch, 1) != 1)
 		bb_perror_msg("can't send signal");
+	errno = sv;
 }
 
 /* Call this before doing anything else. Sets up the socket pair