]> granicus.if.org Git - php/commitdiff
Return a warning when fbsql_read_blob or fbsql_read_clob is called with an invalid...
authorFrank M. Kromann <fmk@php.net>
Wed, 17 Oct 2001 18:36:32 +0000 (18:36 +0000)
committerFrank M. Kromann <fmk@php.net>
Wed, 17 Oct 2001 18:36:32 +0000 (18:36 +0000)
ext/fbsql/php_fbsql.c

index e4ac0ca3c283933661f873c75c69750128fa152f..73f296c2d4041d33b79b754e338716ea5a453fae 100644 (file)
@@ -1031,8 +1031,13 @@ static void php_fbsql_read_lob(INTERNAL_FUNCTION_PARAMETERS, int lob_type)
        ZEND_FETCH_RESOURCE2(phpLink, PHPFBLink *, fbsql_link_index, id, "FrontBase-Link", le_link, le_plink);
 
        convert_to_string_ex(lob_handle);
-       length = fbcbhBlobSize((FBCBlobHandle *)Z_STRVAL_PP(lob_handle));
 
+       if (Z_STRLEN_PP(lob_handle) != 27 || Z_STRVAL_PP(lob_handle)[0] != '@') {
+               if (FB_SQL_G(generateWarnings)) php_error(E_WARNING, "The handle is invalid");
+               RETURN_FALSE;
+       }
+
+       length = fbcbhBlobSize((FBCBlobHandle *)Z_STRVAL_PP(lob_handle));
        if (lob_type == 0) 
                value = estrndup((char *)fbcdcReadBLOB(phpLink->connection, (FBCBlobHandle *)Z_STRVAL_PP(lob_handle)), length);
        else