urlmon: Avoid accessing an uninitialized variable.
Alexandre Goujon
ale.goujon at gmail.com
Sun Jun 5 03:18:18 CDT 2011
---
dlls/urlmon/uri.c | 19 +++++++------------
1 files changed, 7 insertions(+), 12 deletions(-)
diff --git a/dlls/urlmon/uri.c b/dlls/urlmon/uri.c
index f12f826..7daed95 100644
--- a/dlls/urlmon/uri.c
+++ b/dlls/urlmon/uri.c
@@ -3767,12 +3767,12 @@ static void setup_port(const UriBuilder *builder, parse_data *data, DWORD flags)
}
static HRESULT validate_path(const UriBuilder *builder, parse_data *data, DWORD flags) {
- const WCHAR *ptr = NULL;
+ static const WCHAR nullW[] = {0};
+ const WCHAR *ptr = nullW;
const WCHAR *component;
- const WCHAR **pptr;
- DWORD expected_len;
- BOOL check_len = TRUE;
- BOOL valid = FALSE;
+ const WCHAR **pptr = &ptr;
+ DWORD expected_len = -1;
+ BOOL valid;
if(builder->path) {
ptr = builder->path;
@@ -3781,14 +3781,9 @@ static HRESULT validate_path(const UriBuilder *builder, parse_data *data, DWORD
builder->uri && builder->uri->path_start > -1) {
ptr = builder->uri->canon_uri+builder->uri->path_start;
expected_len = builder->uri->path_len;
- } else {
- static const WCHAR nullW[] = {0};
- ptr = nullW;
- check_len = FALSE;
}
component = ptr;
- pptr = &ptr;
/* How the path is validated depends on what type of
* URI it is.
@@ -3796,9 +3791,9 @@ static HRESULT validate_path(const UriBuilder *builder, parse_data *data, DWORD
valid = data->is_opaque ?
parse_path_opaque(pptr, data, flags) : parse_path_hierarchical(pptr, data, flags);
- if(!valid || (check_len && expected_len != data->path_len)) {
+ if(!valid || (expected_len != -1 && expected_len != data->path_len)) {
TRACE("(%p %p %x): Invalid path component %s.\n", builder, data, flags,
- debugstr_wn(component, check_len ? expected_len : -1) );
+ debugstr_wn(component, expected_len) );
return INET_E_INVALID_URL;
}
--
1.7.4.1
More information about the wine-patches
mailing list