Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
abdf0252
Commit
abdf0252
authored
Oct 12, 2013
by
Nikolay Sivov
Committed by
Alexandre Julliard
Oct 14, 2013
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
msxml3: Handle parser failure when loading from url.
parent
8431e75a
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
34 additions
and
29 deletions
+34
-29
bsc.c
dlls/msxml3/bsc.c
+1
-1
domdoc.c
dlls/msxml3/domdoc.c
+2
-14
domdoc.c
dlls/msxml3/tests/domdoc.c
+31
-14
No files found.
dlls/msxml3/bsc.c
View file @
abdf0252
...
@@ -174,7 +174,7 @@ static HRESULT WINAPI bsc_OnStopBinding(
...
@@ -174,7 +174,7 @@ static HRESULT WINAPI bsc_OnStopBinding(
DWORD
len
=
GlobalSize
(
hglobal
);
DWORD
len
=
GlobalSize
(
hglobal
);
char
*
ptr
=
GlobalLock
(
hglobal
);
char
*
ptr
=
GlobalLock
(
hglobal
);
This
->
hres
=
hr
=
This
->
onDataAvailable
(
This
->
obj
,
ptr
,
len
);
This
->
hres
=
This
->
onDataAvailable
(
This
->
obj
,
ptr
,
len
);
GlobalUnlock
(
hglobal
);
GlobalUnlock
(
hglobal
);
}
}
...
...
dlls/msxml3/domdoc.c
View file @
abdf0252
...
@@ -129,7 +129,6 @@ struct domdoc
...
@@ -129,7 +129,6 @@ struct domdoc
VARIANT_BOOL
validating
;
VARIANT_BOOL
validating
;
VARIANT_BOOL
resolving
;
VARIANT_BOOL
resolving
;
domdoc_properties
*
properties
;
domdoc_properties
*
properties
;
bsc_t
*
bsc
;
HRESULT
error
;
HRESULT
error
;
/* IObjectWithSite*/
/* IObjectWithSite*/
...
@@ -940,9 +939,6 @@ static ULONG WINAPI domdoc_Release( IXMLDOMDocument3 *iface )
...
@@ -940,9 +939,6 @@ static ULONG WINAPI domdoc_Release( IXMLDOMDocument3 *iface )
{
{
int
eid
;
int
eid
;
if
(
This
->
bsc
)
detach_bsc
(
This
->
bsc
);
if
(
This
->
site
)
if
(
This
->
site
)
IUnknown_Release
(
This
->
site
);
IUnknown_Release
(
This
->
site
);
destroy_xmlnode
(
&
This
->
node
);
destroy_xmlnode
(
&
This
->
node
);
...
@@ -2067,7 +2063,7 @@ static HRESULT domdoc_onDataAvailable(void *obj, char *ptr, DWORD len)
...
@@ -2067,7 +2063,7 @@ static HRESULT domdoc_onDataAvailable(void *obj, char *ptr, DWORD len)
return
attach_xmldoc
(
This
,
xmldoc
);
return
attach_xmldoc
(
This
,
xmldoc
);
}
}
return
S_OK
;
return
E_FAIL
;
}
}
static
HRESULT
domdoc_load_moniker
(
domdoc
*
This
,
IMoniker
*
mon
)
static
HRESULT
domdoc_load_moniker
(
domdoc
*
This
,
IMoniker
*
mon
)
...
@@ -2079,14 +2075,7 @@ static HRESULT domdoc_load_moniker(domdoc *This, IMoniker *mon)
...
@@ -2079,14 +2075,7 @@ static HRESULT domdoc_load_moniker(domdoc *This, IMoniker *mon)
if
(
FAILED
(
hr
))
if
(
FAILED
(
hr
))
return
hr
;
return
hr
;
if
(
This
->
bsc
)
{
return
detach_bsc
(
bsc
);
hr
=
detach_bsc
(
This
->
bsc
);
if
(
FAILED
(
hr
))
return
hr
;
}
This
->
bsc
=
bsc
;
return
S_OK
;
}
}
static
HRESULT
WINAPI
domdoc_load
(
static
HRESULT
WINAPI
domdoc_load
(
...
@@ -3555,7 +3544,6 @@ HRESULT get_domdoc_from_xmldoc(xmlDocPtr xmldoc, IXMLDOMDocument3 **document)
...
@@ -3555,7 +3544,6 @@ HRESULT get_domdoc_from_xmldoc(xmlDocPtr xmldoc, IXMLDOMDocument3 **document)
doc
->
error
=
S_OK
;
doc
->
error
=
S_OK
;
doc
->
site
=
NULL
;
doc
->
site
=
NULL
;
doc
->
safeopt
=
0
;
doc
->
safeopt
=
0
;
doc
->
bsc
=
NULL
;
doc
->
cp_list
=
NULL
;
doc
->
cp_list
=
NULL
;
doc
->
namespaces
=
NULL
;
doc
->
namespaces
=
NULL
;
memset
(
doc
->
events
,
0
,
sizeof
(
doc
->
events
));
memset
(
doc
->
events
,
0
,
sizeof
(
doc
->
events
));
...
...
dlls/msxml3/tests/domdoc.c
View file @
abdf0252
...
@@ -405,6 +405,8 @@ static const char win1252decl[] =
...
@@ -405,6 +405,8 @@ static const char win1252decl[] =
DECL_WIN_1252
DECL_WIN_1252
;
;
static
const
char
nocontent
[]
=
"no xml content here"
;
static
const
char
szExampleXML
[]
=
static
const
char
szExampleXML
[]
=
"<?xml version='1.0' encoding='utf-8'?>
\n
"
"<?xml version='1.0' encoding='utf-8'?>
\n
"
"<root xmlns:foo='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29' a=
\"
attr a
\"
foo:b=
\"
attr b
\"
>
\n
"
"<root xmlns:foo='urn:uuid:86B2F87F-ACB6-45cd-8B77-9BDB92A01A29' a=
\"
attr a
\"
foo:b=
\"
attr b
\"
>
\n
"
...
@@ -1125,10 +1127,9 @@ static void test_domdoc( void )
...
@@ -1125,10 +1127,9 @@ static void test_domdoc( void )
V_VT
(
&
var
)
=
VT_BSTR
;
V_VT
(
&
var
)
=
VT_BSTR
;
V_BSTR
(
&
var
)
=
_bstr_
(
path
);
V_BSTR
(
&
var
)
=
_bstr_
(
path
);
hr
=
IXMLDOMDocument_load
(
doc
,
var
,
&
b
);
hr
=
IXMLDOMDocument_load
(
doc
,
var
,
&
b
);
todo_wine
{
EXPECT_HR
(
hr
,
class_ptr
->
ret
[
0
].
hr
);
EXPECT_HR
(
hr
,
class_ptr
->
ret
[
0
].
hr
);
ok
(
b
==
class_ptr
->
ret
[
0
].
b
,
"%d:%d, got %d, expected %d
\n
"
,
index
,
i
,
b
,
class_ptr
->
ret
[
0
].
b
);
ok
(
b
==
class_ptr
->
ret
[
0
].
b
,
"%d:%d, got %d, expected %d
\n
"
,
index
,
i
,
b
,
class_ptr
->
ret
[
0
].
b
);
}
DeleteFileA
(
path
);
DeleteFileA
(
path
);
b
=
0xc
;
b
=
0xc
;
...
@@ -9512,28 +9513,33 @@ static void test_selection(void)
...
@@ -9512,28 +9513,33 @@ static void test_selection(void)
free_bstrs
();
free_bstrs
();
}
}
static
void
write_to_file
(
const
char
*
name
,
const
char
*
data
)
{
DWORD
written
;
HANDLE
hfile
;
BOOL
ret
;
hfile
=
CreateFileA
(
name
,
GENERIC_WRITE
|
GENERIC_READ
,
0
,
NULL
,
CREATE_ALWAYS
,
FILE_ATTRIBUTE_NORMAL
,
NULL
);
ok
(
hfile
!=
INVALID_HANDLE_VALUE
,
"failed to create test file: %s
\n
"
,
name
);
ret
=
WriteFile
(
hfile
,
data
,
strlen
(
data
),
&
written
,
NULL
);
ok
(
ret
,
"WriteFile failed: %s, %d
\n
"
,
name
,
GetLastError
());
CloseHandle
(
hfile
);
}
static
void
test_load
(
void
)
static
void
test_load
(
void
)
{
{
IXMLDOMDocument
*
doc
;
IXMLDOMDocument
*
doc
;
IXMLDOMNodeList
*
list
;
IXMLDOMNodeList
*
list
;
VARIANT_BOOL
b
;
VARIANT_BOOL
b
;
HANDLE
hfile
;
VARIANT
src
;
VARIANT
src
;
HRESULT
hr
;
HRESULT
hr
;
BOOL
ret
;
BSTR
path
,
bstr1
,
bstr2
;
BSTR
path
,
bstr1
,
bstr2
;
DWORD
written
;
void
*
ptr
;
void
*
ptr
;
/* prepare a file */
/* prepare a file */
hfile
=
CreateFileA
(
"test.xml"
,
GENERIC_WRITE
|
GENERIC_READ
,
0
,
NULL
,
CREATE_ALWAYS
,
FILE_ATTRIBUTE_NORMAL
,
NULL
);
write_to_file
(
"test.xml"
,
win1252xml
);
ok
(
hfile
!=
INVALID_HANDLE_VALUE
,
"failed to create test file
\n
"
);
if
(
hfile
==
INVALID_HANDLE_VALUE
)
return
;
ret
=
WriteFile
(
hfile
,
win1252xml
,
strlen
(
win1252xml
),
&
written
,
NULL
);
ok
(
ret
,
"WriteFile failed
\n
"
);
CloseHandle
(
hfile
);
doc
=
create_document
(
&
IID_IXMLDOMDocument
);
doc
=
create_document
(
&
IID_IXMLDOMDocument
);
...
@@ -9567,9 +9573,20 @@ static void test_load(void)
...
@@ -9567,9 +9573,20 @@ static void test_load(void)
EXPECT_HR
(
hr
,
E_INVALIDARG
);
EXPECT_HR
(
hr
,
E_INVALIDARG
);
ok
(
b
==
VARIANT_FALSE
,
"got %d
\n
"
,
b
);
ok
(
b
==
VARIANT_FALSE
,
"got %d
\n
"
,
b
);
IXMLDOMDocument_Release
(
doc
);
DeleteFileA
(
"test.xml"
);
/* load from existing path, no xml content */
write_to_file
(
"test.xml"
,
nocontent
);
V_VT
(
&
src
)
=
VT_BSTR
;
V_BSTR
(
&
src
)
=
path
;
b
=
VARIANT_TRUE
;
hr
=
IXMLDOMDocument_load
(
doc
,
src
,
&
b
);
ok
(
hr
==
S_FALSE
,
"got 0x%08x
\n
"
,
hr
);
ok
(
b
==
VARIANT_FALSE
,
"got %d
\n
"
,
b
);
DeleteFileA
(
"test.xml"
);
DeleteFileA
(
"test.xml"
);
IXMLDOMDocument_Release
(
doc
);
doc
=
create_document
(
&
IID_IXMLDOMDocument
);
doc
=
create_document
(
&
IID_IXMLDOMDocument
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment