Jacek Caban : vbscript: Fix handling null argument in CStr.
Alexandre Julliard
julliard at winehq.org
Wed Aug 21 14:39:34 CDT 2019
Module: wine
Branch: master
Commit: fb5b0c64639c056d55e14011a3b4e6f2d83e7cda
URL: https://source.winehq.org/git/wine.git/?a=commit;h=fb5b0c64639c056d55e14011a3b4e6f2d83e7cda
Author: Jacek Caban <jacek at codeweavers.com>
Date: Wed Aug 21 20:22:46 2019 +0200
vbscript: Fix handling null argument in CStr.
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/vbscript/global.c | 3 +++
dlls/vbscript/tests/api.vbs | 8 ++++++++
2 files changed, 11 insertions(+)
diff --git a/dlls/vbscript/global.c b/dlls/vbscript/global.c
index 17759b8..0797403 100644
--- a/dlls/vbscript/global.c
+++ b/dlls/vbscript/global.c
@@ -528,6 +528,9 @@ static HRESULT Global_CStr(vbdisp_t *This, VARIANT *arg, unsigned args_cnt, VARI
TRACE("%s\n", debugstr_variant(arg));
+ if(V_VT(arg) == VT_NULL)
+ return MAKE_VBSERROR(VBSE_ILLEGAL_NULL_USE);
+
hres = to_string(arg, &str);
if(FAILED(hres))
return hres;
diff --git a/dlls/vbscript/tests/api.vbs b/dlls/vbscript/tests/api.vbs
index cbffcf4..93cf7f8 100644
--- a/dlls/vbscript/tests/api.vbs
+++ b/dlls/vbscript/tests/api.vbs
@@ -129,6 +129,14 @@ TestCStr 3, "3"
if isEnglishLang then TestCStr 3.5, "3.5"
if isEnglishLang then TestCStr true, "True"
+sub testCStrError()
+ on error resume next
+ Error.clear()
+ CStr(null)
+ call ok(Err.number = 94, "Err.number = " & Err.number)
+end sub
+call testCStrError()
+
Call ok(getVT(Chr(120)) = "VT_BSTR", "getVT(Chr(120)) = " & getVT(Chr(120)))
Call ok(getVT(Chr(255)) = "VT_BSTR", "getVT(Chr(255)) = " & getVT(Chr(255)))
Call ok(Chr(120) = "x", "Chr(120) = " & Chr(120))
More information about the wine-cvs
mailing list