Module: wine Branch: master Commit: 29bdb32592ffcff1500b6b14e714e5fc1ad7ec05 URL: http://source.winehq.org/git/wine.git/?a=commit;h=29bdb32592ffcff1500b6b14e7...
Author: Marcus Meissner marcus@jet.franken.de Date: Sat Jul 18 22:23:45 2009 +0200
wmc: Duplicate wine_cp_wcstombs check here too (Coverity).
---
tools/wmc/write.c | 9 +++++++-- 1 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/tools/wmc/write.c b/tools/wmc/write.c index 22858b8..7f9784f 100644 --- a/tools/wmc/write.c +++ b/tools/wmc/write.c @@ -396,8 +396,13 @@ static char *make_string(WCHAR *uc, int len, int codepage) else mlen = wine_utf8_wcstombs(0, uc, unistrlen(uc)+1, NULL, 0); cc = tmp = xmalloc(mlen); - if((i = wine_cp_wcstombs(cpdef, 0, uc, unistrlen(uc)+1, tmp, mlen, NULL, NULL)) < 0) - internal_error(__FILE__, __LINE__, "Buffer overflow? code %d\n", i); + if (cpdef) { + if((i = wine_cp_wcstombs(cpdef, 0, uc, unistrlen(uc)+1, tmp, mlen, NULL, NULL)) < 0) + internal_error(__FILE__, __LINE__, "Buffer overflow? code %d\n", i); + } else { + if((i = wine_utf8_wcstombs(0, uc, unistrlen(uc)+1, tmp, mlen)) < 0) + internal_error(__FILE__, __LINE__, "Buffer overflow? code %d\n", i); + } *cptr++ = ' '; *cptr++ = '"'; for(i = b = 0; i < len; i++, cc++)