Module: wine Branch: master Commit: 0fd7bb53892d523e35b16051a6331c6b498fe52d URL: http://source.winehq.org/git/wine.git/?a=commit;h=0fd7bb53892d523e35b16051a6...
Author: Hans Leidekker hans@codeweavers.com Date: Wed Mar 2 14:06:28 2016 +0100
webservices: Reject field mappings without name or namespace.
Signed-off-by: Hans Leidekker hans@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/webservices/tests/writer.c | 5 ++++- dlls/webservices/writer.c | 1 + 2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/dlls/webservices/tests/writer.c b/dlls/webservices/tests/writer.c index 446fa1d..e76eb1b 100644 --- a/dlls/webservices/tests/writer.c +++ b/dlls/webservices/tests/writer.c @@ -787,9 +787,12 @@ static void test_WsWriteElement(void) f.mapping = WS_ATTRIBUTE_FIELD_MAPPING;
/* requires localName and ns to be set */ - hr = WsWriteElement( writer, &desc, WS_WRITE_REQUIRED_POINTER, NULL, 0, NULL ); + hr = WsWriteElement( writer, &desc, WS_WRITE_REQUIRED_POINTER, &test, sizeof(test), NULL ); ok( hr == E_INVALIDARG, "got %08x\n", hr );
+ hr = set_output( writer ); + ok( hr == S_OK, "got %08x\n", hr ); + f.localName = &localname; f.ns = &ns; hr = WsWriteElement( writer, &desc, WS_WRITE_REQUIRED_POINTER, &test, sizeof(test), NULL ); diff --git a/dlls/webservices/writer.c b/dlls/webservices/writer.c index f29b257..8dbe9c2 100644 --- a/dlls/webservices/writer.c +++ b/dlls/webservices/writer.c @@ -1323,6 +1323,7 @@ static HRESULT write_type_struct_field( struct writer *writer, WS_TYPE_MAPPING m switch (desc->mapping) { case WS_ATTRIBUTE_FIELD_MAPPING: + if (!desc->localName || !desc->ns) return E_INVALIDARG; if ((hr = write_add_attribute( writer, NULL, desc->localName, desc->ns, FALSE )) != S_OK) return hr; break;