Bug #77468 [Com]: zend_mm_heap corrupted

From: Date: Fri, 22 Jul 2022 11:06:17 +0000
Subject: Bug #77468 [Com]: zend_mm_heap corrupted
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-241979@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=77468&edit=1 ID: 77468 Comment by: lja at lja dot fi Reported by: thomas dot wiedmann at laek-bw dot de Summary: zend_mm_heap corrupted Status: Assigned Type: Bug Package: PDO OCI Operating System: Windows 7 (Win64) PHP Version: 7.3.1 Assigned To: sixd Block user comment: N Private report: N New Comment: Hi, I got same issue with apache2 + php 8.1. Previous Comments: ------------------------------------------------------------------------ [2019-07-24 09:07:31] cmb@php.net > I am not sure in which PHP version this error is fixed. Since this ticket has not been closed, the bug is not fixed yet. ------------------------------------------------------------------------ [2019-07-24 08:34:19] thomas dot wiedmann at laek-bw dot de I am not sure in which PHP version this error is fixed. Am I waiting for 7.4 ? Thanks! ------------------------------------------------------------------------ [2019-01-21 09:44:22] thomas dot wiedmann at laek-bw dot de Forth piece ----[PL/SQL Package Body]---- CREATE OR REPLACE PACKAGE BODY tw_pkg_bearbeiter IS /** * Globale Variablen für Tabelle: BEARBEITER */ g_nBearbeiter bearbeiter.bearbeiter%TYPE; g_sArt bearbeiter.art%TYPE; g_nZahl bearbeiter.zahl%TYPE; g_sText bearbeiter.text%TYPE; /** * Verarbeitungsstatus */ g_nStatus NUMBER := 0; g_nEOF NUMBER := 0; error_code NUMBER := SQLCODE; error_msg VARCHAR2(512) := SQLERRM; CURSOR curBearbeiterRead(p_nBearbeiter NUMBER, p_sArt VARCHAR2 ) IS SELECT bearbeiter, art, zahl, text FROM bearbeiter WHERE bearbeiter = p_nBearbeiter AND art = p_sArt; recBearbeiterRead curBearbeiterRead%ROWTYPE; /** * globale Variable zu BEARBEITER initialisieren */ PROCEDURE Init IS BEGIN g_nBearbeiter := NULL; g_sArt := NULL; g_nZahl := NULL; g_sText := NULL; END; /** * Datensatz direkt lesen */ PROCEDURE Read (p_nBearbeiter IN NUMBER, p_sArt IN VARCHAR2 ) IS BEGIN /** * INIT */ Init(); OPEN curBearbeiterRead(p_nBearbeiter, p_sArt); LOOP FETCH curBearbeiterRead INTO recBearbeiterRead; EXIT WHEN curBearbeiterRead%NOTFOUND; /** * Datensatz in globale Variablen einlesen */ g_nBearbeiter := recBearbeiterRead.bearbeiter; g_sArt := recBearbeiterRead.art; g_nZahl := recBearbeiterRead.zahl; g_sText := recBearbeiterRead.text; EXIT; END LOOP; IF curBearbeiterRead%FOUND THEN g_nStatus := 1; ELSE g_nStatus := 0; END IF; CLOSE curBearbeiterRead; END; PROCEDURE Close IS BEGIN IF curBearbeiterRead%ISOPEN THEN CLOSE curBearbeiterRead; END IF; IF curBearbeiterSearch%ISOPEN THEN CLOSE curBearbeiterSearch; END IF; END; /** * PRIVAT FUNCTION - nicht in Spezifikation * Prüfen auf zwischenzeitliche Änderung (multiuser) und Sperren für UPDATE */ /** * Status - Get - Variablen */ PROCEDURE GetnStatus (p_nStatus OUT NUMBER) IS BEGIN p_nStatus := g_nStatus; END; PROCEDURE GetnErrorcode (p_error_code OUT NUMBER) IS BEGIN p_error_code := error_code; END; PROCEDURE GetsErrormsg (p_error_msg OUT VARCHAR2) IS BEGIN p_error_msg := error_msg; END; /** * SET/GET Methoden */ PROCEDURE GetnBearbeiter ( p_nBearbeiter OUT NUMBER ) IS BEGIN p_nBearbeiter := g_nBearbeiter; END; PROCEDURE SetnBearbeiter ( p_nBearbeiter IN NUMBER ) IS BEGIN g_nBearbeiter := p_nBearbeiter; END; PROCEDURE GetsArt ( p_sArt OUT VARCHAR2 ) IS BEGIN p_sArt := g_sArt; END; PROCEDURE SetsArt ( p_sArt IN VARCHAR2 ) IS BEGIN g_sArt := p_sArt; END; PROCEDURE GetnZahl ( p_nZahl OUT NUMBER ) IS BEGIN p_nZahl := g_nZahl; END; PROCEDURE SetnZahl ( p_nZahl IN NUMBER ) IS BEGIN g_nZahl := p_nZahl; END; PROCEDURE GetsText ( p_sText OUT VARCHAR2 ) IS BEGIN p_sText := g_sText; END; PROCEDURE SetsText ( p_sText IN VARCHAR2 ) IS BEGIN g_sText := p_sText; END; /** * wenn in Zahl ein Julianisches Datum hinterlegt ist, * dieses im Format DD.MM.YYYY abholen/setzen */ PROCEDURE GetdtZahl ( p_dtZahl OUT VARCHAR2 ) IS BEGIN p_dtZahl := TO_CHAR(TO_DATE(g_nZahl,'J'),'DD.MM.YYYY'); END; PROCEDURE SetdtZahl ( p_dtZahl IN VARCHAR2 ) IS BEGIN g_nZahl := TO_NUMBER(TO_CHAR(TO_DATE(p_dtZahl,'DD.MM.YYYY'),'J')); END; BEGIN NULL; EXCEPTION WHEN others THEN error_code := SQLCODE; error_msg := SQLERRM; END; ----[PL/SQL Package Body]---- ------------------------------------------------------------------------ [2019-01-21 09:41:59] thomas dot wiedmann at laek-bw dot de Third piece ----[PL/SQL Package]---- CREATE OR REPLACE PACKAGE tw_pkg_bearbeiter AUTHID CURRENT_USER IS /** * Hauptmethoden */ PROCEDURE Read (p_nBearbeiter IN NUMBER := NULL, p_sArt IN VARCHAR2 := NULL); /** * GET/SET */ PROCEDURE GetnBearbeiter ( p_nBearbeiter OUT NUMBER ); PROCEDURE SetnBearbeiter ( p_nBearbeiter IN NUMBER := NULL ); PROCEDURE GetsArt ( p_sArt OUT VARCHAR2 ); PROCEDURE SetsArt ( p_sArt IN VARCHAR2 := NULL ); PROCEDURE GetnZahl ( p_nZahl OUT NUMBER ); PROCEDURE SetnZahl ( p_nZahl IN NUMBER := NULL ); PROCEDURE GetsText ( p_sText OUT VARCHAR2 ); PROCEDURE SetsText ( p_sText IN VARCHAR2 := NULL ); PROCEDURE GetdtZahl ( p_dtZahl OUT VARCHAR2 ); PROCEDURE SetdtZahl ( p_dtZahl IN VARCHAR2 := NULL ); END; ----[PL/SQL Package]---- ------------------------------------------------------------------------ [2019-01-21 09:40:34] thomas dot wiedmann at laek-bw dot de Second piece After the second stmt=null apache crashed ----[php PL/SQL call]--- $sQuery = ''; $sQuery = $sQuery . 'BEGIN '; $sQuery = $sQuery . ' tw_pkg_bearbeiter.Read(:df_nBearbeiter,:df_sArt); '; $sQuery = $sQuery . ' tw_pkg_bearbeiter.GetnBearbeiter(:df_nBearbeiter);'; $sQuery = $sQuery . ' tw_pkg_bearbeiter.GetsArt(:df_sArt);'; $sQuery = $sQuery . ' tw_pkg_bearbeiter.GetnZahl(:df_nZahl);'; $sQuery = $sQuery . ' tw_pkg_bearbeiter.GetsText(:df_sText);'; $sQuery = $sQuery . ' tw_pkg_bearbeiter.GetdtZahl(:df_dtZahl);'; $sQuery = $sQuery . ' tw_pkg_bearbeiter.GetnStatus(:nStatus); '; $sQuery = $sQuery . 'END; '; $stmt = $dbh->prepare($sQuery); if ($stmt) { error_log('bearbeiter read() - prepared', 0); $stmt->bindParam(':df_nBearbeiter', $df_nBearbeiter, PDO::PARAM_INT | PDO::PARAM_INPUT_OUTPUT, 22 ); $stmt->bindParam(':df_sArt', $df_sArt, PDO::PARAM_STR | PDO::PARAM_INPUT_OUTPUT, 15 ); $stmt->bindParam(':df_nZahl', $df_nZahl, PDO::PARAM_INT | PDO::PARAM_INPUT_OUTPUT, 22 ); $stmt->bindParam(':df_sText', $df_sText, PDO::PARAM_STR | PDO::PARAM_INPUT_OUTPUT, 40 ); $stmt->bindParam(':df_dtZahl', $df_dtZahl, PDO::PARAM_STR | PDO::PARAM_INPUT_OUTPUT, 10 ); $stmt->bindParam(':nStatus', $nStatus, PDO::PARAM_INT | PDO::PARAM_INPUT_OUTPUT, 22 ); $stmt->execute(); error_log('bearbeiter read() - executed', 0); $stmt->closeCursor(); error_log('bearbeiter read() - closeCursor', 0); $stmt = null; error_log('bearbeiter read() - stmt=null', 0); if ($nStatus) { // ok } else { // nicht gefunden @todo - Fehlermeldung? } } ----[php PL/SQL call]--- ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at https://bugs.php.net/bug.php?id=77468 -- Edit this bug report at https://bugs.php.net/bug.php?id=77468&edit=1

« previous php.bugs (#241979) next »