tony2001 Tue Jan 16 11:19:10 2007 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/pspell pspell.c Log: MFH http://cvs.php.net/viewvc.cgi/php-src/ext/pspell/pspell.c?r1=1.45.2.4.2.4&r2=1.45.2.4.2.5&diff_format=u Index: php-src/ext/pspell/pspell.c diff -u php-src/ext/pspell/pspell.c:1.45.2.4.2.4 php-src/ext/pspell/pspell.c:1.45.2.4.2.5 --- php-src/ext/pspell/pspell.c:1.45.2.4.2.4 Mon Jan 1 09:36:05 2007 +++ php-src/ext/pspell/pspell.c Tue Jan 16 11:19:10 2007 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: pspell.c,v 1.45.2.4.2.4 2007/01/01 09:36:05 sebastian Exp $ */ +/* $Id: pspell.c,v 1.45.2.4.2.5 2007/01/16 11:19:10 tony2001 Exp $ */ #define IS_EXT_MODULE @@ -186,6 +186,7 @@ * pointing to the location of the dictionaries */ if(0 == RegOpenKey(HKEY_LOCAL_MACHINE, "Software\\Aspell", &hkey)) { + dwLen = sizeof(aspell_dir) - 1; RegQueryValueEx(hkey, "", NULL, &dwType, (LPBYTE)&aspell_dir, &dwLen); RegCloseKey(hkey); strcpy(data_dir, aspell_dir); @@ -247,6 +248,7 @@ if(pspell_error_number(ret) != 0){ php_error_docref(NULL TSRMLS_CC, E_WARNING, "PSPELL couldn't open the dictionary. reason: %s ", pspell_error_message(ret)); + delete_pspell_manager(ret); RETURN_FALSE; } @@ -289,6 +291,7 @@ * pointing to the location of the dictionaries */ if(0 == RegOpenKey(HKEY_LOCAL_MACHINE, "Software\\Aspell", &hkey)) { + dwLen = sizeof(aspell_dir) - 1; RegQueryValueEx(hkey, "", NULL, &dwType, (LPBYTE)&aspell_dir, &dwLen); RegCloseKey(hkey); strcpy(data_dir, aspell_dir); @@ -304,10 +307,12 @@ convert_to_string_ex(personal); if (PG(safe_mode) && (!php_checkuid(Z_STRVAL_PP(personal), NULL, CHECKUID_CHECK_FILE_AND_DIR))) { + delete_pspell_config(config); RETURN_FALSE; } if (php_check_open_basedir(Z_STRVAL_PP(personal) TSRMLS_CC)) { + delete_pspell_config(config); RETURN_FALSE; } @@ -363,6 +368,7 @@ if(pspell_error_number(ret) != 0){ php_error_docref(NULL TSRMLS_CC, E_WARNING, "PSPELL couldn't open the dictionary. reason: %s ", pspell_error_message(ret)); + delete_pspell_manager(ret); RETURN_FALSE; } @@ -396,6 +402,7 @@ if(pspell_error_number(ret) != 0){ php_error_docref(NULL TSRMLS_CC, E_WARNING, "PSPELL couldn't open the dictionary. reason: %s ", pspell_error_message(ret)); + delete_pspell_manager(ret); RETURN_FALSE; } @@ -641,17 +648,18 @@ /* If aspell was installed using installer, we should have a key * pointing to the location of the dictionaries */ - if(0 == RegOpenKey(HKEY_LOCAL_MACHINE, "Software\\Aspell", &hkey)) { - RegQueryValueEx(hkey, "", NULL, &dwType, (LPBYTE)&aspell_dir, &dwLen); - RegCloseKey(hkey); - strcpy(data_dir, aspell_dir); - strcat(data_dir, "\\data"); - strcpy(dict_dir, aspell_dir); - strcat(dict_dir, "\\dict"); - - pspell_config_replace(config, "data-dir", data_dir); - pspell_config_replace(config, "dict-dir", dict_dir); - } + if(0 == RegOpenKey(HKEY_LOCAL_MACHINE, "Software\\Aspell", &hkey)) { + dwLen = sizeof(aspell_dir) - 1; + RegQueryValueEx(hkey, "", NULL, &dwType, (LPBYTE)&aspell_dir, &dwLen); + RegCloseKey(hkey); + strcpy(data_dir, aspell_dir); + strcat(data_dir, "\\data"); + strcpy(dict_dir, aspell_dir); + strcat(dict_dir, "\\dict"); + + pspell_config_replace(config, "data-dir", data_dir); + pspell_config_replace(config, "dict-dir", dict_dir); + } #endif convert_to_string_ex(language);
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php