aboutsummaryrefslogtreecommitdiff
path: root/libX11/src/Xrm.c
diff options
context:
space:
mode:
Diffstat (limited to 'libX11/src/Xrm.c')
-rw-r--r--libX11/src/Xrm.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/libX11/src/Xrm.c b/libX11/src/Xrm.c
index 21f0af3c0..fbc8ad293 100644
--- a/libX11/src/Xrm.c
+++ b/libX11/src/Xrm.c
@@ -842,8 +842,10 @@ static void PutEntry(
nprev = NodeBuckets(table); \
} else { \
table->leaf = 1; \
- if (!(nprev = (NTable *)Xmalloc(sizeof(VEntry *)))) \
+ if (!(nprev = (NTable *)Xmalloc(sizeof(VEntry *)))) {\
+ Xfree(table); \
return; \
+ } \
((LTable)table)->buckets = (VEntry *)nprev; \
} \
*nprev = (NTable)NULL; \
@@ -1594,6 +1596,12 @@ ReadInFile(_Xconst char *filename)
*/
GetSizeOfFile(fd, size);
+ /* There might have been a problem trying to stat a file */
+ if (size == -1) {
+ close (fd);
+ return (char *)NULL;
+ }
+
if (!(filebuf = Xmalloc(size + 1))) { /* leave room for '\0' */
close(fd);
return (char *)NULL;