summaryrefslogtreecommitdiffstats
path: root/src/common/util-common.h
diff options
context:
space:
mode:
authorAndrew Gregory <andrew.gregory.8@gmail.com>2014-08-06 22:36:00 +0200
committerAllan McRae <allan@archlinux.org>2014-09-23 13:43:16 +0200
commitc792262b137a5f2daddac22f82e7d8d98d0d7d31 (patch)
treed3177e6c722a96da72503a912d4c5fded0ef78e8 /src/common/util-common.h
parent9c066dff439ba453f4c362e1875b794cf3f362ed (diff)
downloadpacman-c792262b137a5f2daddac22f82e7d8d98d0d7d31.tar.gz
pacman-c792262b137a5f2daddac22f82e7d8d98d0d7d31.tar.xz
wrap fgets to retry on EINTR
The read() underlying fgets() can be interrupted by a signal handler causing fgets() to return NULL. Before we started handling SIGWINCH, the odds of interrupting a read were low and typically resulted in termination anyway. Replace all fgets calls with a wrapper that retries in EINTR. Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com>
Diffstat (limited to 'src/common/util-common.h')
-rw-r--r--src/common/util-common.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/common/util-common.h b/src/common/util-common.h
index 576702fa..ca8db5ab 100644
--- a/src/common/util-common.h
+++ b/src/common/util-common.h
@@ -20,6 +20,7 @@
#ifndef _PM_UTIL_COMMON_H
#define _PM_UTIL_COMMON_H
+#include <stdio.h>
#include <sys/stat.h> /* struct stat */
const char *mbasename(const char *path);
@@ -27,6 +28,8 @@ char *mdirname(const char *path);
int llstat(char *path, struct stat *buf);
+char *safe_fgets(char *s, int size, FILE *stream);
+
#ifndef HAVE_STRNDUP
char *strndup(const char *s, size_t n);
#endif