From 31646e89ba945684ae1697eff41b2502f813b334 Mon Sep 17 00:00:00 2001 From: Simon Arlott Date: Tue, 26 Apr 2016 20:28:12 +0100 Subject: [PATCH] librb: gnutls: check return value of fread() --- librb/src/gnutls.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/librb/src/gnutls.c b/librb/src/gnutls.c index b374dd0c..6ceffd0d 100644 --- a/librb/src/gnutls.c +++ b/librb/src/gnutls.c @@ -335,6 +335,7 @@ rb_load_file_into_datum_t(const char *file) FILE *f; gnutls_datum_t *datum; struct stat fileinfo; + int count; if((f = fopen(file, "r")) == NULL) return NULL; if(fstat(fileno(f), &fileinfo)) @@ -348,8 +349,14 @@ rb_load_file_into_datum_t(const char *file) datum->size = fileinfo.st_size; datum->data = rb_malloc(datum->size + 1); - fread(datum->data, datum->size, 1, f); + count = fread(datum->data, datum->size, 1, f); fclose(f); + + if(count != 1) + { + rb_free_datum_t(datum); + return NULL; + } return datum; }