php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #34203 PHP crashes on PDO prepared query
Submitted: 2005-08-21 10:33 UTC Modified: 2005-09-04 02:20 UTC
From: stotty at tvnet dot hu Assigned: wez (profile)
Status: Closed Package: PDO related
PHP Version: 5.1.0RC1 OS: Linux Fedora Core 4
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 you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: stotty at tvnet dot hu
New email:
PHP Version: OS:

 

 [2005-08-21 10:33 UTC] stotty at tvnet dot hu
Description:
------------
If a prepared query with named parameters has one of the paramteres used more than once, then PHP fails with a realloc failure, without giving any useable error message.

This bug triggers only if called from within a class member function

Reproduce code:
---------------
<?php

  $dsn='pgsql:dbname=xenophile host=localhost port=5432 user=stoty';
  $dbc= new PDO($dsn);
  $dbc->setAttribute(PDO_ATTR_ERRMODE, PDO_ERRMODE_EXCEPTION);
  
  class Crashme {
 
 	public function crashfunction($one, $two) {
 		global $dbc;
		$weight_check_stmt=$dbc->prepare("
		select 
   		(select total_cpu_weight from domain0 where id= :domain0_id) -
   		(select cpu_weight from domain_template where id= :template_id) -
   		sum(cpu_weight)
   		as result 
   		from domain where domain0_id = :domain0_id");
    	$weight_check_stmt->bindParam(":domain0_id", $one);
   		$weight_check_stmt->bindParam(":template_id", $two);
    	$weight_check_stmt->execute();
 	}
  }
  
  $crashclass = new Crashme;
  $crashclass->crashfunction(1,2);
?>


Expected result:
----------------
I exepected to get a meaningfull error message, describing the problem, like I get when the above query is not run from a member function) (like in bug 33886)


Actual result:
--------------
I get this in the http error log:

FATAL:  erealloc():  Unable to allocate 4 bytes


Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2005-09-04 02:20 UTC] edink@php.net
This bug has been fixed in CVS.

Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.
 
Thank you for the report, and for helping us make PHP better.


 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Thu Dec 26 16:01:31 2024 UTC