libbluray | branch: master | hpi1 <[email protected]> | Tue Apr 28 13:09:21 2015 +0300| [92b346b5315b8b017b68b79c1f015f652cd1059d] | committer: hpi1
str_printf(): Simplify. Return NULL if memory allocation fails. > http://git.videolan.org/gitweb.cgi/libbluray.git/?a=commit;h=92b346b5315b8b017b68b79c1f015f652cd1059d --- src/util/strutl.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/util/strutl.c b/src/util/strutl.c index 39c772d..b9f02bb 100644 --- a/src/util/strutl.c +++ b/src/util/strutl.c @@ -40,8 +40,15 @@ char *str_printf(const char *fmt, ...) int size = 100; char *tmp, *str = NULL; - str = malloc(size); while (1) { + + tmp = realloc(str, size); + if (tmp == NULL) { + X_FREE(str); + return NULL; + } + str = tmp; + /* Try to print in the allocated space. */ va_start(ap, fmt); len = vsnprintf(str, size, fmt, ap); @@ -57,12 +64,6 @@ char *str_printf(const char *fmt, ...) size = len+1; /* precisely what is needed */ else /* glibc 2.0 */ size *= 2; /* twice the old size */ - - tmp = realloc(str, size); - if (tmp == NULL) { - return str; - } - str = tmp; } } _______________________________________________ libbluray-devel mailing list [email protected] https://mailman.videolan.org/listinfo/libbluray-devel
