1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
From f9115d65b561adeb6d36ded952949f065ad0a572 Mon Sep 17 00:00:00 2001
From: Florian Forster <ff@octo.it>
Date: Thu, 14 Sep 2017 08:37:23 +0200
Subject: [PATCH] src/liboping.c: Report right error message when select()
fails.
After a successful call to gettimeofday(), the value of errno is
unspecified.
---
src/liboping.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/liboping.c b/src/liboping.c
index eca5c16..5253e8c 100644
--- a/src/liboping.c
+++ b/src/liboping.c
@@ -1465,6 +1465,7 @@ int ping_send (pingobj_t *obj)
(unsigned) timeout.tv_usec);
int status = select (max_fd + 1, &read_fds, &write_fds, NULL, &timeout);
+ int select_errno = errno;
if (gettimeofday (&nowtime, NULL) == -1)
{
@@ -1474,7 +1475,7 @@ int ping_send (pingobj_t *obj)
if (status == -1)
{
- ping_set_errno (obj, errno);
+ ping_set_errno (obj, select_errno);
dprintf ("select: %s\n", obj->errmsg);
return (-1);
}
|