cvs: php4 /ext/standard browscap.c
| From: | Stanislav Malyshev | Date: | Tue, 25 Jul 2000 18:50:02 +0000 |
| Subject: | cvs: php4 /ext/standard browscap.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-916@lists.php.net to get a copy of this message | ||
stas Tue Jul 25 11:50:02 2000 EDT
Modified files:
/php4/ext/standard browscap.c
Log:
Fix more bugs in browscap
# now it shoudl work, but leaks like hell, so don't use it yet
Index: php4/ext/standard/browscap.c
diff -u php4/ext/standard/browscap.c:1.33 php4/ext/standard/browscap.c:1.34
--- php4/ext/standard/browscap.c:1.33 Tue Jul 25 01:09:00 2000
+++ php4/ext/standard/browscap.c Tue Jul 25 11:50:02 2000
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: browscap.c,v 1.33 2000/07/25 08:09:00 stas Exp $ */
+/* $Id: browscap.c,v 1.34 2000/07/25 18:50:02 stas Exp $ */
#include "php.h"
#include "php_regex.h"
@@ -31,7 +31,7 @@
static int browser_reg_compare(zval **browser,int num_args, va_list args, zend_hash_key *key)
{
- zval *browser_name;
+ zval **browser_name;
regex_t r;
char *lookup_browser_name = va_arg(args,char *);
zval **found_browser_entry = va_arg(args,zval **);
@@ -43,10 +43,10 @@
return 0;
}
- if (!strchr(browser_name->value.str.val,'*')) {
+ if (!strchr((*browser_name)->value.str.val,'*')) {
return 0;
}
- if (regcomp(&r,browser_name->value.str.val,REG_NOSUB)!=0) {
+ if (regcomp(&r,(*browser_name)->value.str.val,REG_NOSUB)!=0) {
return 0;
}
if (regexec(&r,lookup_browser_name,0,NULL,0)==0) {
@@ -93,7 +93,7 @@
zend_hash_apply_with_arguments(&browser_hash,(int (*)(void *, int, va_list, zend_hash_key *))
browser_reg_compare,2,lookup_browser_name,&found_browser_entry);
if (found_browser_entry) {
- *agent = found_browser_entry;
+ agent = &found_browser_entry;
} else if (zend_hash_find(&browser_hash, DEFAULT_SECTION_NAME, sizeof(DEFAULT_SECTION_NAME),
(void **) &agent)==FAILURE) {
RETURN_FALSE;
}