vlc | branch: master | Rémi Denis-Courmont <r...@remlab.net> | Wed Aug 9 22:34:27 2017 +0300| [23b45f037f47b043a9a6917310db509e7c398218] | committer: Rémi Denis-Courmont
iconv: handle NULL pointers (fixes #18677) > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=23b45f037f47b043a9a6917310db509e7c398218 --- src/extras/libc.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/extras/libc.c b/src/extras/libc.c index bb7faab769..12e35808f3 100644 --- a/src/extras/libc.c +++ b/src/extras/libc.c @@ -387,19 +387,25 @@ size_t vlc_iconv( vlc_iconv_t cd, const char **inbuf, size_t *inbytesleft, #ifndef __linux__ if ( cd == (vlc_iconv_t)(-2) ) { - unsigned char *out = (unsigned char *)*outbuf; + unsigned char *out = NULL; + if (outbuf != NULL) + out = (unsigned char *)*outbuf; ret = ISO6937toUTF8( inbuf, inbytesleft, &out, outbytesleft ); - *outbuf = (char *)out; + if (outbuf != NULL) + *outbuf = (char *)out; } else #endif #if defined(HAVE_ICONV) { - ICONV_CONST char *cin = (ICONV_CONST char *)*inbuf; + ICONV_CONST char *cin = NULL; + if (inbuf != NULL) + cin = (ICONV_CONST char *)*inbuf; ret = iconv( cd, &cin, inbytesleft, outbuf, outbytesleft ); - *inbuf = cin; + if (inbuf != NULL) + *inbuf = cin; } #else abort (); _______________________________________________ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits