aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Landley <rob@landley.net>2013-08-07 12:19:51 -0500
committerRob Landley <rob@landley.net>2013-08-07 12:19:51 -0500
commit1aa75118c46c8fbe0eeead18974d25e5f13274d5 (patch)
tree643b500aa234d17a8fc5cf1dad8d61e6fbb5aeae
parent17ea5644d93ff1ced28d3602ac244cb6022f3ba6 (diff)
downloadtoybox-1aa75118c46c8fbe0eeead18974d25e5f13274d5.tar.gz
Forgot to check in xfdopen(). My bad.
Failure of fdopen() is most likely failure of malloc() for the FILE structure.
-rw-r--r--lib/lib.h1
-rw-r--r--lib/xwrap.c9
2 files changed, 10 insertions, 0 deletions
diff --git a/lib/lib.h b/lib/lib.h
index 98f4aadd..f66a70c7 100644
--- a/lib/lib.h
+++ b/lib/lib.h
@@ -106,6 +106,7 @@ int xcreate(char *path, int flags, int mode);
int xopen(char *path, int flags);
void xclose(int fd);
int xdup(int fd);
+FILE *xfdopen(int fd, char *mode);
FILE *xfopen(char *path, char *mode);
size_t xread(int fd, void *buf, size_t len);
void xreadall(int fd, void *buf, size_t len);
diff --git a/lib/xwrap.c b/lib/xwrap.c
index adf3e752..9f1dc996 100644
--- a/lib/xwrap.c
+++ b/lib/xwrap.c
@@ -172,6 +172,15 @@ int xdup(int fd)
return fd;
}
+FILE *xfdopen(int fd, char *mode)
+{
+ FILE *f = fdopen(fd, mode);
+
+ if (!f) perror_exit("xfdopen");
+
+ return f;
+}
+
// Die unless we can open/create a file, returning FILE *.
FILE *xfopen(char *path, char *mode)
{