mariuz                                   Wed, 28 Dec 2011 10:17:17 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=321467

Log:
fix Bug #47415  PDO_Firebird segfaults when passing lowercased column name to 
bindColumn()

Bug: https://bugs.php.net/47415 (Assigned) PDO_Firebird segfaults when passing 
lowercased column name to bindColumn()
      
Changed paths:
    U   php/php-src/branches/PHP_5_3/ext/pdo_firebird/firebird_statement.c
    U   php/php-src/branches/PHP_5_4/ext/pdo_firebird/firebird_statement.c
    U   php/php-src/trunk/ext/pdo_firebird/firebird_statement.c

Modified: php/php-src/branches/PHP_5_3/ext/pdo_firebird/firebird_statement.c
===================================================================
--- php/php-src/branches/PHP_5_3/ext/pdo_firebird/firebird_statement.c  
2011-12-28 10:12:43 UTC (rev 321466)
+++ php/php-src/branches/PHP_5_3/ext/pdo_firebird/firebird_statement.c  
2011-12-28 10:17:17 UTC (rev 321467)
@@ -582,6 +582,9 @@
                        break;

                case PDO_PARAM_EVT_FETCH_POST:
+                        if (param->paramno == -1) {
+                            return 0;
+                        }
                        value = NULL;
                        value_len = 0;
                        caller_frees = 0;
@@ -598,6 +601,15 @@
                                                        
ZVAL_LONG(param->parameter, *(long*)value);
                                                        break;
                                                }
+                                        case PDO_PARAM_EVT_NORMALIZE:
+                                                 if (!param->is_param) {
+                                                      char *s = param->name;
+                                                      while (*s != '\0') {
+                                                           *s = toupper(*s);
+                                                            s++;
+                                                      }
+                                                 }
+                                                        break;
                                        default:
                                                ZVAL_NULL(param->parameter);
                                }

Modified: php/php-src/branches/PHP_5_4/ext/pdo_firebird/firebird_statement.c
===================================================================
--- php/php-src/branches/PHP_5_4/ext/pdo_firebird/firebird_statement.c  
2011-12-28 10:12:43 UTC (rev 321466)
+++ php/php-src/branches/PHP_5_4/ext/pdo_firebird/firebird_statement.c  
2011-12-28 10:17:17 UTC (rev 321467)
@@ -582,6 +582,9 @@
                        break;

                case PDO_PARAM_EVT_FETCH_POST:
+                        if (param->paramno == -1) {
+                            return 0;
+                        }
                        value = NULL;
                        value_len = 0;
                        caller_frees = 0;
@@ -598,6 +601,15 @@
                                                        
ZVAL_LONG(param->parameter, *(long*)value);
                                                        break;
                                                }
+                                        case PDO_PARAM_EVT_NORMALIZE:
+                                                 if (!param->is_param) {
+                                                      char *s = param->name;
+                                                      while (*s != '\0') {
+                                                           *s = toupper(*s);
+                                                            s++;
+                                                      }
+                                                 }
+                                                        break;
                                        default:
                                                ZVAL_NULL(param->parameter);
                                }

Modified: php/php-src/trunk/ext/pdo_firebird/firebird_statement.c
===================================================================
--- php/php-src/trunk/ext/pdo_firebird/firebird_statement.c     2011-12-28 
10:12:43 UTC (rev 321466)
+++ php/php-src/trunk/ext/pdo_firebird/firebird_statement.c     2011-12-28 
10:17:17 UTC (rev 321467)
@@ -582,6 +582,9 @@
                        break;

                case PDO_PARAM_EVT_FETCH_POST:
+                        if (param->paramno == -1) {
+                            return 0;
+                        }
                        value = NULL;
                        value_len = 0;
                        caller_frees = 0;
@@ -598,6 +601,15 @@
                                                        
ZVAL_LONG(param->parameter, *(long*)value);
                                                        break;
                                                }
+                                        case PDO_PARAM_EVT_NORMALIZE:
+                                                 if (!param->is_param) {
+                                                      char *s = param->name;
+                                                      while (*s != '\0') {
+                                                           *s = toupper(*s);
+                                                            s++;
+                                                      }
+                                                 }
+                                                        break;
                                        default:
                                                ZVAL_NULL(param->parameter);
                                }

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to