back to dev
[m6w6/ext-http] / php_http_params.c
index 65504ac660155e6d40da74c98d8e7b0d4b15b7cc..523424423d3b21ce15704d4804cae4dd73fc1daa 100644 (file)
@@ -224,6 +224,10 @@ static inline void sanitize_key(unsigned flags, char *str, size_t len, zval *zv,
        if (flags & PHP_HTTP_PARAMS_ESCAPED) {
                sanitize_escaped(zv TSRMLS_CC);
        }
+       
+       if (!Z_STRLEN_P(zv)) {
+               return;
+       }
 
        eos = &Z_STRVAL_P(zv)[Z_STRLEN_P(zv)-1];
        if (*eos == '*') {
@@ -253,7 +257,7 @@ static inline void sanitize_rfc5987(zval *zv, char **language, zend_bool *latin1
        switch (Z_STRVAL_P(zv)[0]) {
        case 'I':
        case 'i':
-               if (!strncasecmp(Z_STRVAL_P(zv), ZEND_STRL("iso-8859-1"))) {
+               if (!strncasecmp(Z_STRVAL_P(zv), "iso-8859-1", lenof("iso-8859-1"))) {
                        *latin1 = 1;
                        ptr = Z_STRVAL_P(zv) + lenof("iso-8859-1");
                        break;
@@ -261,7 +265,7 @@ static inline void sanitize_rfc5987(zval *zv, char **language, zend_bool *latin1
                /* no break */
        case 'U':
        case 'u':
-               if (!strncasecmp(Z_STRVAL_P(zv), ZEND_STRL("utf-8"))) {
+               if (!strncasecmp(Z_STRVAL_P(zv), "utf-8", lenof("utf-8"))) {
                        *latin1 = 0;
                        ptr = Z_STRVAL_P(zv) + lenof("utf-8");
                        break;