[PHP] Curl / Win2k -> Apache Crasht

Pagina: 1
Acties:

  • Basszje
  • Registratie: Augustus 2000
  • Laatst online: 11:13

Basszje

Reisvaap!]

Topicstarter
Ik heb een probleem met CURL. Ik probeer een file ( hey de tweakers tracker :P ) op te halen met CURL. In principe zou dit geen problemen opleveren.

Echter als ik het volgende script uitvoer :

PHP:
1
2
3
4
5
6
7
    $ch = curl_init ($url);
    $fp = fopen ($target, "w");
    
            curl_setopt ($ch, CURLOPT_FILE, $fp);
    
    curl_exec ($ch);
    curl_close ($ch);


de crash treedt op bij de curl_exec aanroep

dan sterft apache :
Ik krijg in de browser een APACHE.exe error met een mislukte geheugen actie
" de written bewerking op het geheugen is mislukt "
[Wed Oct 09 01:34:12 2002] [notice] Parent: child process exited with status 3221225477 -- Restarting.
[Wed Oct 09 01:34:13 2002] [notice] Parent: Created child process 928
Ik gebruik PHP 4.2.3 met Win 2k en Apache 2.0.40

Is dit een bug oid of doe ik gewoon iets verkeerds :? Ik kan de bugs iid nergens terugvinden in de bug reports of google ..

Beware of listening to the imposter; you are undone if you once forget that the fruits of the earth belong to us all, and the earth itself to nobody.


  • MAZZA
  • Registratie: Januari 2000
  • Laatst online: 28-08 13:27

MAZZA

Barbie is er weer!

Ik meen dat ik die error eens heb gezien in een vulnerability report op bugtraq.. Moment ff zoeken..

Hier is ie:
http://online.securityfoc...8/2002-06-16/2002-06-22/0

Gaat om 2.0.36 en er is een patch voor staat er. Alleen die heeft blijkbaar niet gewerkt :o

Maar lijkt dus een bug van apache te zijn..

  • Basszje
  • Registratie: Augustus 2000
  • Laatst online: 11:13

Basszje

Reisvaap!]

Topicstarter
Hum die bug report is totaal anders dan wat ik krijg, want hij eet geen geheugen en geeft weldegelijk een error in de error log.

maar ik zoek wel ff verder op de apache site :)

Beware of listening to the imposter; you are undone if you once forget that the fruits of the earth belong to us all, and the earth itself to nobody.


Verwijderd

Mogelijk is het je apache-versie die niet goed samewerkt met de cURL-lib. Hoedanook is cURL onder windows een beetje suckie in mijn ervaring. Wat voor mij werkte bij een probleem met lib-curl onder windows was om gewoon de commandline-client curl.exe (geloof ik) aan te roepen met system() of passthru().

  • Basszje
  • Registratie: Augustus 2000
  • Laatst online: 11:13

Basszje

Reisvaap!]

Topicstarter
Deze nog even omhoog schoppen hoog ;) .
Ik heb het even laten liggen en ben er vandaag weer verder meegegaan .

Het probleem valt iig te omzeilen ( voor de search users ;) ).

Ipv dit :

PHP:
1
2
3
4
5
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
           curl_setopt ($ch, CURLOPT_FILE, $fp);
          curl_exec ($ch);
    curl_close ($ch);


( de file zou automatisch geschreven moeten worden, echter apache crasht.

Nu heb ik dit gedaan :

PHP:
1
2
3
4
5
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
    $data = curl_exec ($ch);
    curl_close ($ch);
    fwrite($fp, $data);


Oftewel de crash ligt hem in de file write header van CURL. Maar je kan wel gewoon handmatig de data opvragen en deze in een file pleuren .

Maakt dus weinig verschil behalven een crash :)

Beware of listening to the imposter; you are undone if you once forget that the fruits of the earth belong to us all, and the earth itself to nobody.