From 4bb4b859bf326b9df6cd98ca264a76249151aa44 Mon Sep 17 00:00:00 2001 From: Palana Date: Sat, 19 Apr 2014 07:37:21 +0200 Subject: [PATCH] Initialize returned pointer to always trigger NULL checks in callers Also avoid allocation roundtrip if the file is empty after the BOM --- libobs/util/platform.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/libobs/util/platform.c b/libobs/util/platform.c index b736ee384..d5a9d4356 100644 --- a/libobs/util/platform.c +++ b/libobs/util/platform.c @@ -108,6 +108,8 @@ size_t os_fread_utf8(FILE *file, char **pstr) size_t size_read; size_t len = 0; + *pstr = NULL; + fseeko(file, 0, SEEK_END); size = (size_t)ftello(file); @@ -125,6 +127,9 @@ size_t os_fread_utf8(FILE *file, char **pstr) offset = (astrcmp_n(bom, "\xEF\xBB\xBF", 3) == 0) ? 3 : 0; size -= offset; + if (size == 0) + return 0; + utf8str = bmalloc(size+1); fseeko(file, offset, SEEK_SET); @@ -137,8 +142,6 @@ size_t os_fread_utf8(FILE *file, char **pstr) utf8str[size] = 0; *pstr = utf8str; - } else { - *pstr = NULL; } return len;