diff options
author | Anatol Belski <ab@php.net> | 2014-11-13 14:17:41 +0100 |
---|---|---|
committer | Anatol Belski <ab@php.net> | 2014-11-13 19:57:29 +0100 |
commit | c865472ef0c431cf3c6ec153736881d13e8a6883 (patch) | |
tree | f9bfacf9baa1b4338fe5c119dd1d420c4d089083 /ext/com_dotnet | |
parent | cf979ca6fe0309f494897283bb95f8abf2398d72 (diff) | |
download | php-git-c865472ef0c431cf3c6ec153736881d13e8a6883.tar.gz |
fix datatype mismatches, remove dead part of code
Diffstat (limited to 'ext/com_dotnet')
-rw-r--r-- | ext/com_dotnet/com_typeinfo.c | 6 | ||||
-rw-r--r-- | ext/com_dotnet/com_variant.c | 11 |
2 files changed, 8 insertions, 9 deletions
diff --git a/ext/com_dotnet/com_typeinfo.c b/ext/com_dotnet/com_typeinfo.c index 17b69d2460..ac5777cef1 100644 --- a/ext/com_dotnet/com_typeinfo.c +++ b/ext/com_dotnet/com_typeinfo.c @@ -71,7 +71,7 @@ PHP_COM_DOTNET_API ITypeLib *php_com_load_typelib(char *search_string, int codep if (FAILED(hr) && (major == NULL || minor == NULL)) { IDispatch *disp = NULL; ITypeInfo *info = NULL; - int idx; + UINT idx; if (SUCCEEDED(hr = CoCreateInstance(&clsid, NULL, CLSCTX_SERVER, &IID_IDispatch, (LPVOID*)&disp)) && SUCCEEDED(hr = IDispatch_GetTypeInfo(disp, 0, LANG_NEUTRAL, &info))) { @@ -96,7 +96,7 @@ PHP_COM_DOTNET_API ITypeLib *php_com_load_typelib(char *search_string, int codep DWORD VersionCount; char version[20]; char *libname; - DWORD libnamelen; + long libnamelen; if (ERROR_SUCCESS == RegOpenKeyEx(HKEY_CLASSES_ROOT, "TypeLib", 0, KEY_READ, &hkey) && ERROR_SUCCESS == RegQueryInfoKey(hkey, NULL, NULL, NULL, &SubKeys, @@ -116,7 +116,7 @@ PHP_COM_DOTNET_API ITypeLib *php_com_load_typelib(char *search_string, int codep continue; } /* get the default value for this key and compare */ - libnamelen = (DWORD)strlen(search_string)+1; + libnamelen = (long)strlen(search_string)+1; if (ERROR_SUCCESS == RegQueryValue(hsubkey, version, libname, &libnamelen)) { if (0 == stricmp(libname, search_string)) { char *str = NULL; diff --git a/ext/com_dotnet/com_variant.c b/ext/com_dotnet/com_variant.c index 6a81eed102..7317b8d0e4 100644 --- a/ext/com_dotnet/com_variant.c +++ b/ext/com_dotnet/com_variant.c @@ -39,8 +39,7 @@ static void safe_array_from_zval(VARIANT *v, zval *z, int codepage TSRMLS_DC) HashPosition pos; int keytype; zend_string *strindex; - zend_long intindex = -1; - zend_long max_index = 0; + zend_ulong intindex = 0; VARIANT *va; zval *item; @@ -54,15 +53,15 @@ static void safe_array_from_zval(VARIANT *v, zval *z, int codepage TSRMLS_DC) goto bogus; } else if (HASH_KEY_NON_EXISTENT == keytype) { break; - } - if (intindex > max_index) { - max_index = intindex; + } else if (intindex > UINT_MAX) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "COM: max number %u of elements in safe array exceeded", UINT_MAX); + break; } } /* allocate the structure */ bound.lLbound = 0; - bound.cElements = (ULONG)(intindex + 1); + bound.cElements = zend_hash_num_elements(HASH_OF(z)); sa = SafeArrayCreate(VT_VARIANT, 1, &bound); /* get a lock on the array itself */ |