Module: wine Branch: master Commit: a75cc9e6262af8efbbc553bfbdc3a928773fd618 URL: https://source.winehq.org/git/wine.git/?a=commit;h=a75cc9e6262af8efbbc553bfb...
Author: Alexandre Julliard julliard@winehq.org Date: Fri Nov 27 14:31:40 2020 +0100
msxml3: Only allow ASCII characters in number conversion.
Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/msxml3/element.c | 2 +- dlls/msxml3/nodelist.c | 2 +- dlls/msxml3/nodemap.c | 2 +- dlls/msxml3/selection.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/dlls/msxml3/element.c b/dlls/msxml3/element.c index a352621bfb3..05255508d4e 100644 --- a/dlls/msxml3/element.c +++ b/dlls/msxml3/element.c @@ -520,7 +520,7 @@ static inline HRESULT variant_from_dt(XDR_DT dt, xmlChar* str, VARIANT* v) if(*p == '.') { p++; - while(isdigitW(*p)) p++; + while (*p >= '0' && *p <= '9') p++; } }
diff --git a/dlls/msxml3/nodelist.c b/dlls/msxml3/nodelist.c index 2c1d10efb6a..57b8ea823c1 100644 --- a/dlls/msxml3/nodelist.c +++ b/dlls/msxml3/nodelist.c @@ -312,7 +312,7 @@ static HRESULT xmlnodelist_get_dispid(IUnknown *iface, BSTR name, DWORD flags, D WCHAR *ptr; int idx = 0;
- for(ptr = name; *ptr && isdigitW(*ptr); ptr++) + for(ptr = name; *ptr >= '0' && *ptr <= '9'; ptr++) idx = idx*10 + (*ptr-'0'); if(*ptr) return DISP_E_UNKNOWNNAME; diff --git a/dlls/msxml3/nodemap.c b/dlls/msxml3/nodemap.c index a9fef4769dc..5ea083c4495 100644 --- a/dlls/msxml3/nodemap.c +++ b/dlls/msxml3/nodemap.c @@ -371,7 +371,7 @@ static HRESULT xmlnodemap_get_dispid(IUnknown *iface, BSTR name, DWORD flags, DI WCHAR *ptr; int idx = 0;
- for(ptr = name; *ptr && isdigitW(*ptr); ptr++) + for(ptr = name; *ptr >= '0' && *ptr <= '9'; ptr++) idx = idx*10 + (*ptr-'0'); if(*ptr) return DISP_E_UNKNOWNNAME; diff --git a/dlls/msxml3/selection.c b/dlls/msxml3/selection.c index ede80627d7b..d05a1d6ffcb 100644 --- a/dlls/msxml3/selection.c +++ b/dlls/msxml3/selection.c @@ -595,7 +595,7 @@ static HRESULT domselection_get_dispid(IUnknown *iface, BSTR name, DWORD flags, WCHAR *ptr; int idx = 0;
- for(ptr = name; *ptr && isdigitW(*ptr); ptr++) + for(ptr = name; *ptr >= '0' && *ptr <= '9'; ptr++) idx = idx*10 + (*ptr-'0'); if(*ptr) return DISP_E_UNKNOWNNAME;