fusion:asmname Improve parse_display_name [try2]
Alexandre Goujon
ale.goujon at gmail.com
Fri Sep 10 02:59:53 CDT 2010
---
dlls/fusion/asmname.c | 10 +++++++++-
dlls/fusion/tests/asmname.c | 9 +++------
2 files changed, 12 insertions(+), 7 deletions(-)
diff --git a/dlls/fusion/asmname.c b/dlls/fusion/asmname.c
index bcf49a7..54be4e8 100644
--- a/dlls/fusion/asmname.c
+++ b/dlls/fusion/asmname.c
@@ -522,8 +522,16 @@ static HRESULT parse_display_name(IAssemblyNameImpl *name, LPCWSTR szAssemblyNam
if (!str)
return E_OUTOFMEMORY;
- ptr = strstrW(str, separator);
+ ptr = strchrW(str, ',');
if (ptr) *ptr = '\0';
+
+ /* no ',' but ' ' only */
+ if( !ptr && strchrW(str, ' ') )
+ {
+ hr = FUSION_E_INVALID_NAME;
+ goto done;
+ }
+
name->name = strdupW(str);
if (!name->name)
return E_OUTOFMEMORY;
diff --git a/dlls/fusion/tests/asmname.c b/dlls/fusion/tests/asmname.c
index 655f62f..170af23 100644
--- a/dlls/fusion/tests/asmname.c
+++ b/dlls/fusion/tests/asmname.c
@@ -868,12 +868,9 @@ static void test_CreateAssemblyNameObject(void)
to_widechar(namestr, "wine PublicKeyToken=1234567890abcdef");
name = (IAssemblyName *)0xdeadbeef;
hr = pCreateAssemblyNameObject(&name, namestr, CANOF_PARSE_DISPLAY_NAME, NULL);
- todo_wine
- {
- ok(hr == FUSION_E_INVALID_NAME,
- "Expected FUSION_E_INVALID_NAME, got %08x\n", hr);
- ok(name == (IAssemblyName *)0xdeadbeef, "Expected 0xdeadbeef, got %p\n", name);
- }
+ ok(hr == FUSION_E_INVALID_NAME,
+ "Expected FUSION_E_INVALID_NAME, got %08x\n", hr);
+ ok(name == (IAssemblyName *)0xdeadbeef, "Expected 0xdeadbeef, got %p\n", name);
if(SUCCEEDED(hr)) IAssemblyName_Release(name);
/* no '=' */
--
1.7.0.4
More information about the wine-patches
mailing list