diff options
author | Karel Zak <kzak@redhat.com> | 2016-10-04 16:14:48 +0200 |
---|---|---|
committer | Karel Zak <kzak@redhat.com> | 2016-10-04 16:14:48 +0200 |
commit | a86b9f252c9d04a23cee9422b4e03ab3d79e348b (patch) | |
tree | 15d9398bd31036effcf265cfd05f00f8c65da38c | |
parent | 2d1fa4fdc3302b50f0263604a46e00c7b88ecc24 (diff) | |
download | util-linux-a86b9f252c9d04a23cee9422b4e03ab3d79e348b.tar.gz |
lib/mbsalign: free buffer after error [coverity scan]
Signed-off-by: Karel Zak <kzak@redhat.com>
-rw-r--r-- | lib/mbsalign.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/lib/mbsalign.c b/lib/mbsalign.c index c017ed1b3d..731320b074 100644 --- a/lib/mbsalign.c +++ b/lib/mbsalign.c @@ -206,15 +206,16 @@ size_t mbs_safe_encode_size(size_t bytes) char *mbs_safe_encode(const char *s, size_t *width) { size_t sz = s ? strlen(s) : 0; - char *buf; + char *buf, *ret = NULL;; if (!sz) return NULL; buf = malloc(mbs_safe_encode_size(sz)); - if (!buf) - return NULL; - - return mbs_safe_encode_to_buffer(s, width, buf, NULL); + if (buf) + ret = mbs_safe_encode_to_buffer(s, width, buf, NULL); + if (!ret) + free(buf); + return ret; } #ifdef HAVE_WIDECHAR |