Skip to content

pdo memory leak #17970

@chongwick

Description

@chongwick

Description

The following code:

<?php
$conn = null;
try {
    $conn = new PDO('firebird:dbname=localhost:C:/path/to/your/db.gdb', 'username', 'password');
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $stmt = $conn->prepare('SELECT * FROM your_table');
    $stmt->execute();
    $result = $stmt->fetchAll(PDO::FETCH_ASSOC);
} catch (PDOException $e) {
    echo 'Connection failed: '. $e->getMessage();
} finally {
    if ($conn) {
        $conn = null;
    }
}
?>

Resulted in this output:

Deprecated: Calling DatePeriod::__construct(string $isostr, int $options = 0) is deprecated, use DatePeriod::createFromISO8601String() instead in /home/w023dtc/autest/php_fuzzing/gen_3/template.inc on line 44
Connection failed: SQLSTATE[08003] [0] invalid database handle (no active connection)
=================================================================
==3192395==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 768 byte(s) in 3 object(s) allocated from:
    #0 0x14e817ca1a57 in __interceptor_calloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:154
    #1 0x14e81383abf6 in mp_init (/lib/x86_64-linux-gnu/libtommath.so.1+0x4bf6)
    #2 0x14e8149e7909  (/lib/x86_64-linux-gnu/libfbclient.so.2+0x9c909)
    #3 0x14e814a06197  (/lib/x86_64-linux-gnu/libfbclient.so.2+0xbb197)
    #4 0x14e814a09b69  (/lib/x86_64-linux-gnu/libfbclient.so.2+0xbeb69)
    #5 0x14e814a0a353  (/lib/x86_64-linux-gnu/libfbclient.so.2+0xbf353)
    #6 0x14e8149fb9e4  (/lib/x86_64-linux-gnu/libfbclient.so.2+0xb09e4)
    #7 0x14e8149ef11a  (/lib/x86_64-linux-gnu/libfbclient.so.2+0xa411a)
    #8 0x14e8149fea99  (/lib/x86_64-linux-gnu/libfbclient.so.2+0xb3a99)
    #9 0x14e8149cdbf3  (/lib/x86_64-linux-gnu/libfbclient.so.2+0x82bf3)
    #10 0x14e8149bac82 in isc_attach_database (/lib/x86_64-linux-gnu/libfbclient.so.2+0x6fc82)
    #11 0x562e89a2ddb3 in pdo_firebird_handle_factory /home/w023dtc/nightly_php/php-src/ext/pdo_firebird/firebird_driver.c:1390
    #12 0x562e899f61b1 in php_pdo_internal_construct_driver /home/w023dtc/nightly_php/php-src/ext/pdo/pdo_dbh.c:489
    #13 0x562e8a91ecdb in ZEND_DO_FCALL_SPEC_RETVAL_UNUSED_HANDLER /home/w023dtc/nightly_php/php-src/Zend/zend_vm_execute.h:1919
    #14 0x562e8a91ecdb in execute_ex /home/w023dtc/nightly_php/php-src/Zend/zend_vm_execute.h:58860
    #15 0x562e8a91fb0f in zend_execute /home/w023dtc/nightly_php/php-src/Zend/zend_vm_execute.h:64247
    #16 0x562e8aae2bef in zend_execute_script /home/w023dtc/nightly_php/php-src/Zend/zend.c:1941
    #17 0x562e8a28b1e3 in php_execute_script_ex /home/w023dtc/nightly_php/php-src/main/main.c:2584
    #18 0x562e8aae8285 in do_cli /home/w023dtc/nightly_php/php-src/sapi/cli/php_cli.c:938
    #19 0x562e88e73c32 in main /home/w023dtc/nightly_php/php-src/sapi/cli/php_cli.c:1313
    #20 0x14e813e9fd8f  (/lib/x86_64-linux-gnu/libc.so.6+0x29d8f)

Direct leak of 112 byte(s) in 1 object(s) allocated from:
    #0 0x14e817ca1887 in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:145
    #1 0x14e813ea076c in __gconv_open (/lib/x86_64-linux-gnu/libc.so.6+0x2a76c)
    #2 0x14e813ea02b7 in iconv_open (/lib/x86_64-linux-gnu/libc.so.6+0x2a2b7)
    #3 0x602000019c4f  (<unknown module>)

Direct leak of 112 byte(s) in 1 object(s) allocated from:
    #0 0x14e817ca1887 in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:145
    #1 0x14e813ea076c in __gconv_open (/lib/x86_64-linux-gnu/libc.so.6+0x2a76c)
    #2 0x14e813ea02b7 in iconv_open (/lib/x86_64-linux-gnu/libc.so.6+0x2a2b7)
    #3 0x602000019bcf  (<unknown module>)

Indirect leak of 32640 byte(s) in 1 object(s) allocated from:
    #0 0x14e817ca1887 in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:145
    #1 0x14e813ea07e6 in __gconv_open (/lib/x86_64-linux-gnu/libc.so.6+0x2a7e6)
    #2 0x14e813ea02b7 in iconv_open (/lib/x86_64-linux-gnu/libc.so.6+0x2a2b7)
    #3 0x602000019c4f  (<unknown module>)

Indirect leak of 32640 byte(s) in 1 object(s) allocated from:
    #0 0x14e817ca1887 in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:145
    #1 0x14e813ea07e6 in __gconv_open (/lib/x86_64-linux-gnu/libc.so.6+0x2a7e6)
    #2 0x14e813ea02b7 in iconv_open (/lib/x86_64-linux-gnu/libc.so.6+0x2a2b7)
    #3 0x602000019bcf  (<unknown module>)

Indirect leak of 416 byte(s) in 2 object(s) allocated from:
    #0 0x14e817ca1887 in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:145
    #1 0x14e813eab9d6  (/lib/x86_64-linux-gnu/libc.so.6+0x359d6)

SUMMARY: AddressSanitizer: 66688 byte(s) leaked in 9 allocation(s).

PHP Version

nightly

Operating System

ubuntu 22.04

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions