]> granicus.if.org Git - php/commitdiff
Fixed possible crash.
authorIlia Alshanetsky <iliaa@php.net>
Thu, 20 May 2004 18:10:16 +0000 (18:10 +0000)
committerIlia Alshanetsky <iliaa@php.net>
Thu, 20 May 2004 18:10:16 +0000 (18:10 +0000)
ext/pdo_pgsql/pgsql_statement.c

index 4e2e2b702c224e304bf88082ee91b13968a8f87e..8808e91ef770c838595e5718de0385500900b093 100644 (file)
@@ -110,6 +110,10 @@ static int pgsql_stmt_describe(pdo_stmt_t *stmt, int colno TSRMLS_DC)
        pdo_pgsql_stmt *S = (pdo_pgsql_stmt*)stmt->driver_data;
        struct pdo_column_data *cols = stmt->columns;
 
+       if (!S->result) {
+               return 0;
+       }
+
        cols[colno].name = estrdup(PQfname(S->result, colno));
        cols[colno].namelen = strlen(cols[colno].name);
        cols[colno].maxlen = PQfsize(S->result, colno);
@@ -123,6 +127,10 @@ static int pgsql_stmt_get_col(pdo_stmt_t *stmt, int colno, char **ptr, unsigned
 {
        pdo_pgsql_stmt *S = (pdo_pgsql_stmt*)stmt->driver_data;
 
+       if (!S->result) {
+               return 0;
+       }
+
        /* We have already increased count by 1 in pgsql_stmt_fetch() */
        *ptr = PQgetvalue(S->result, S->current_row - 1, colno);
        *len = PQgetlength(S->result, S->current_row - 1, colno);