|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2005-01-21 16:59 UTC] luciano at tolomei dot name
Description:
------------
-------------------------------------------------------
PHP version 5.0.3
urano code # emerge -pv php
[ebuild R ] dev-php/php-5.0.3 -adabas +bcmath +berkdb -birdstep +bzlib +calendar -cdb -cpdflib +crypt +ctype +curl
+curlwrappers -db2 +dba -dbase -dbm -dbmaker +dbx -debug +dio -empress -empress-bcs -esoob +exif -fam -fdftk -filepro
-flatfile -frontbase +ftp +gd -gd-external +gdbm +gmp -hyperwave-api +iconv +imap -informix -ingres -inifile -interbase
-iodbc +jpeg -kerberos -ldap -libedit -mcve-memlimit -mhash +mime -ming -mnogosearch -msession -msql -mssql +mysql
-mysqli +ncurses -nis +nls -oci8 +odbc -oracle7 -ovrimos -pcntl +pcre -pfpro +png +posix +postgres -qdbm +readline
-recode -sapdb -sasl +session -shared -sharedmem -simplexml +snmp +soap +sockets -solid +spell -spl +sqlite +ssl -sybase
-sybase-ct -sysvipc -tidy +tiff -tokenizer +truetype +wddx +xml2 +xmlrpc -xpm +xsl +zlib 0 kB
--------------------------------------------------------
in my framework it happens that when i'm logged in as a particular user the apache web server crash with signal 11.
The problem is that i canno't reproduce the error.
There is no different code based on users, i can explain what is happening but no more, The code is from php 4 but it should works on php 5 (i think it worked well with php 5.0.1).
in a configuration file required by the aplication i do this:
class prodotti extends query_class {
var $nomec = "Prodotti";
var $tabella = 'st_prodotti';
var $identifica = 'idprod';
}
// Titles
$prodotti_titolo[0] = "Aggiunta/Modifica di un nuovo Prodotto";
$prodotti_titolo[1] = "Conferma nuovo Prodotto";
$prodotti_titolo[2] = "Lista Prodotti";
// must be inserted
$prodotti_obbligati[0] = "codice";
$prodotti_obbligati[1] = "confezione";
$prodotti_obbligati[2] = "prezzo";
// Descriptions
$prodotti_etichette["codice"] = "Codice";
$prodotti_etichette["descrizione"] = "Descrizione";
$prodotti_etichette["confezione"] = "Pezzi per confezione";
$prodotti_etichette["prezzo"] = "Prezzo per confezione";
$prodotti_etichette["download"] = "Immagine Prodotto";
$prodotti_etichette["minima"] = "Confezioni minime ordinabili";
$prodotti_etichette["ordine"] = "Lettera Ordinamento";
$prodotti_etichette["massima"] = "Confezioni massime ordinabili";
// specials
$prodotti_special[0][0] = "listino";
$prodotti_special[0][1] = "Listino di riferimento";
$prodotti_special[0][2] = "select idlist,nome from st_listini where tipografia = $idt and stato = 0 order by nome";
$prodotti_special[0][3] = "select nome from st_listini where idlist =";
$prodotti_special[1][0] = "categoria";
$prodotti_special[1][1] = "Categoria di appartenenza";
$prodotti_special[1][2] = "select idcat,nome from st_categorie where tipografia = $idt and stato = 0 order by nome";
$prodotti_special[1][3] = "select nome from st_categorie where idcat =";
//Listing Sistems (from other tables)
$prodotti_lista[0] = "listino";
$prodotti_lista[1] = "categoria";
//View on lists
$prodotti_mostra[0] = "codice";
$prodotti_mostra[1] = "confezione";
$prodotti_mostra[2] = "prezzo";
//some other things...
then where the program crash i made this in this case centro = prodotti... but i use it crash with all other tables...:
$lista = new $centro($database,$user,$passwd,0,$host,$db_type);
Reproduce code:
---------------
[... a lot of code no reproducible ...]
$lista_val = $GLOBALS[$centro."_lista"]; //here it crashed
[... some code ...]
or
[... a lot of code ...]
$temp_val = $centro."_lista";
global $$temp_val;
$lista_val = $$temp_val; //here it crashed
[... some code ...]
Expected result:
----------------
hi espect $lista_val to be an array
//i try to
$temp_val = $centro."_lista";
echo "--".$centro."--".$temp_val."--";
/*******
$lista_val = $GLOBALS[$temp_val];
and i get:
--prodotti--prodotti_Xsta-- (where x is a square)
and surprisingly with:
$temp_val = $centro."_lista";
$temp2 = $centro."_listatest";
echo "--".$centro."--".$temp_val."--".$temp2."--";
i get:
--prodotti--prodotti_listatest--prodotti_listatest--
Actual result:
--------------
[Tue Aug 03 18:36:11 2004] [notice] child pid 29521 exit signal Segmentation fault (11)
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Mon Oct 27 05:00:01 2025 UTC |
i have recompiled php and apache with the debug option. now it does not crash it write: String is not zero-terminated (D?E ) (source: /var/tmp/portage/mod_php-5.0.3/work/php-5.0.3/Zend/zend_execute_API.c:392) in /var/www/vdomains/it/stampaservice/www/stsrv/themes/default/struttura/centro.inc on line 432 the line is: $output->esegui("out_lista","$centro|$principale|$titoli"); $principale and $titoli are strings writtens like $example = "example example example \" example \" example example"; $centro is the variable used as i written in the submission. the object is: class modulo { var $path; var $errore; var $messaggio_errore; var $risultato; function modulo($nome) { $this->errore = false; $this->messaggio_errore = ''; $this->risultato = ''; global $moduli; $this->path = $moduli."/".$nome; if (!is_dir($path)) { $this->errore = true; $this->messaggio_errore = "Non Riesco a trovare il modulo con path = a $this->path\n"; } [.... some code...] } function esegui($nome,$argomenti) { if (!is_file($this->path."/".$nome.".inc")) { $this->errore = true; $this->messaggio_errore = "Non Trovo la funzione richiesta '$nome' nel path = a $this->path\n"; [.........some code.........] } else { $variabili = explode("|",$argomenti); for ($i=0;$i < count($variabili);$i++) { $argomento = "arg".$i; $$argomento = $variabili[$i]; } require($this->path."/".$nome.".inc"); } } }