php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #73021 SIGSEGV updating a large BLOB field
Submitted: 2016-09-05 16:38 UTC Modified: 2016-09-08 10:59 UTC
From: dorin dot marcoci at gmail dot com Assigned:
Status: Closed Package: PDO Firebird
PHP Version: Irrelevant OS: Debian Linux 8.5
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If this is not your bug, you can add a comment by following this link.
If this is your bug, but you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: dorin dot marcoci at gmail dot com
New email:
PHP Version: OS:

 

 [2016-09-05 16:38 UTC] dorin dot marcoci at gmail dot com
Description:
------------
PDO Driver fails when updating a blob field with a large string content.
Our test show SIGSEGV happens from about 92000 chars filled in blob parameter by $Statement->bindValue($Name, $Value);

Some facts:
- Error is raised in Execute, not in BindValue
- Records in database are updated


DB Field is declared as:

Firebird 2.5.5
BLOB SUB_TYPE 1 SEGMENT SIZE 100 CHARACTER SET UTF8 COLLATE UTF8

Script is striped down from our code. Always reproducible.

Test script:
---------------
<?php

$D = [
	'kind' => 'firebird',
	'host' => '10.10.10.IP',
	'port' => 3050,
	'base' => 'database',
	'charset' => 'utf8',
	'user' => 'SYSDBA',
	'password' => 'password here',
	'options' => []
];

$H = $D['kind'].':host='.$D['host'].';port='.$D['port'].';dbname='.$D['base'].';charset='.$D['charset'];

$C = new \PDO($H, $D['user'], $D['password'], $D['options']);

if (!$S = $C->prepare('update ta_table set description = :description where id = 370'))
	return false;

$S->bindValue('description', str_repeat('a', 100000));

if (!$S->execute())
		return false;

return true;

Actual result:
--------------
[05-Sep-2016 19:33:32] WARNING: [pool www] child 6612 exited on signal 11 (SIGSEGV) after 0.444558 seconds from start

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2016-09-08 10:59 UTC] dorin dot marcoci at gmail dot com
-Status: Open +Status: Closed
 [2016-09-08 10:59 UTC] dorin dot marcoci at gmail dot com
Tested on PHP 7.10. The bug is seems to be fixed.
Probably it was at PDO level, not at Firebird driver implementation.
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Sun Apr 28 12:01:28 2024 UTC