Bug #13896 Updated: Segmentation fault with xslt extention
| From: | jens at ja-web dot de | Date: | Thu, 01 Nov 2001 11:41:02 +0000 |
| Subject: | Bug #13896 Updated: Segmentation fault with xslt extention | ||
| References: | 1 | Groups: | php.dev |
| Request: | Send a blank email to php-dev+get-69476@lists.php.net to get a copy of this message | ||
ID: 13896
User updated by: jens@ja-web.de
Reported By: jens@ja-web.de
Status: Open
Bug Type: XSLT related
Operating System: Linux RH 7.2
PHP Version: 4.1.0RC1
New Comment:
ups, the xml/xsl got mixed up a bit while pasting into the input form ...
Previous Comments:
------------------------------------------------------------------------
[2001-11-01 06:38:50] jens@ja-web.de
$xsl = $root . "/styles/travel.xsl";
//$xml_str is read from a database
$xp = xslt_create();
$content = xslt_process($xp, 'arg:/xmldata', $xsl, NULL, array('xmldata' =>
$xml_str ), $HTTP_GET_VARS);
xslt_free($xp);
###########################################################
sample $str_xml:
<?xml version="1.0" encoding="ISO-8859-1"
?><mycms><baseurl><?xml version="1.0" encoding="iso-8859-1"
?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="no" encoding="iso-8859-1"/>
<xsl:template match="/mycms">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="baseurl">
</xsl:template>
<xsl:template match="article">
<div class="article">
<xsl:apply-templates/>
</div>
</xsl:template>
<xsl:template match="header">
<div class="header">
<xsl:apply-templates/>
</div>
</xsl:template>
<xsl:template match="date">
<p class="date">
<xsl:apply-templates/>
</p>
</xsl:template>
<xsl:template match="content">
<div class="content">
<xsl:apply-templates/>
</div>
</xsl:template>
<xsl:template match="para">
<div>
<xsl:apply-templates/>
</div>
<br />
</xsl:template>
<xsl:template match="image">
<div class="image {@position}">
<p class="dummy">
<a href="/tools/?src={//baseurl}/{url}" onclick="return
showimage('{//baseurl}/{url}')">
<img class="thumb" src="{//baseurl}/thumbs/{url}"
alt="{//baseurl}/{url}" border="0" /></a><br />
<span class="caption"><xsl:value-of
select="caption"></xsl:value-of></span>
</p>
</div>
</xsl:template>
<xsl:template match="link">
<a>
<xsl:attribute name="href"><xsl:value-of
select="url"></xsl:value-of></xsl:attribute>
<xsl:value-of select="text"></xsl:value-of>
</a>
<xsl:text> </xsl:text>
</xsl:template>
<xsl:template match="text()|*"> <xsl:value-of select="."/>
</xsl:template>
</xsl:stylesheet>
/img/travel/long/2001</baseurl><article>
<content>
<para>Heute ist Sightseeing angesagt; ab jetzt keine Hauptstraßen mehr!! Doch wir haben noch
ein kleines Problem: wir müßten mal wieder tanken, doch heute ist Feiertag. Die nächsten
größeren Ortschaften sind im Westen, also machen wir uns erstmal in diese Richtung auf den Weg.
</para>
<para>Nur wenige Kilometer später, in Orgelet (D470) ist eine Tankstelle 24/24, wie es
überall so schön heißt. Allerdings nur mit Tankautomat. Leider nimmt der trotz dickem
VISA-Wapperl außen dran weder unsere Kredit- noch EC-Karten ! Mist, was jetzt? Wir sind nicht die
einzigen, die hier tanken möchten und Heike kann eine Französin, die gerade fertig ist, davon
überzeugen, daß wir ihr 100 FF geben und sie dafür mit ihrer Karte etwas Benzin für uns zapft -
puh, erstmal gerettet!</para>
<para><image
position="center"><url>01-01-03.jpg</url><caption>01-01-03.jpg</caption></image>Jetzt
geht es wirklich los. Auf D3 und D60 fahren wir durch Onoz, Cernon, Condes nach Thoirette. Die
wunderschöne Landstraße führt durch Wald und Felder, manchmal hoch oben manchmal unten neben dem
Fluß Ain entlang. Die Überraschung in Toirette: hier hat ein Supermarkt geöffnet! Der kommt uns
gerade recht zu einem zweiten Frühstück mit Baguette, Schinken und Käse. </para>
<para>Wir bleiben auf der Rechten Seite des Flusses und fahren nun auf der D936 weiter nach
Süden. Etwa auf halbem Weg nach Corveissat biegt links ein schmales Sträßchen. Das ist die D59,
die dicht am Fluß entlang führt, wie ich leider zu spät merke. So fahren wir nun auf schöner
kurviger Straße hinauf nach Corveissat und weiter auf der D59B durch den Wald. Bald erreichen wir
eine Stelle, wo die Straße an die Schlucht herran führt: von hier hat man eine schöne Aussicht
auf den Fluß, die D59 unten entlang, die Brücke auf die andere Seite - war doch garnicht so
schlecht, daß ich mich verfahren habe.</para>
<para><image
position="center"><url>01-01-06.jpg</url><caption>01-01-06.jpg</caption></image>Es
geht weiter nach Cize und nun auf der D59, vorbei an Romanèche bis Hautecourt-Romanèche. Hier
treffen wir auf die D979. Nach rechts führt sie nach Bourg-en-Bresse, unserem nächsten Ziel - die
100FF Benzin sind nämlich bald wieder hin. Die Straße führt die letzten Kilometer fast
kerzengerade auf die Stadt zu. Dahinter ist viel flaches Land und weit im Hintergrund sieht man
wieder Berge. Das muß der Beginn vom Massiv Central sein. In Bourg angekommen finden wir zwar keine
Tankstelle - wieder nur Automaten - aber eineNn McDonalds; dann tanken wir erstmal selbst. Au wei,
ist das teuer hier ...</para>
<para>Nächste Möglichkeit zum Tanken ist dann wohl Macon, ca. 30km westlich und laut Karte
etwas größer als Bourg. Die Straße dorthin, die N79 ist nicht so schlimm wie befürchtet; zwar
fast schnurgerade aber etwas hügelig und durch grüne Landschaft. In Macon dann endlich eine
richtige Tankstelle - der Tag ist gerettet. Wir sind nun auch schon fast am Fuß der Berge, die wir
vor 2 Stunden gesehen haben. Da fahren wir jetzt rauf.</para>
<para>Wir verlassen die Stadt auf der N6 nach Süden. Nach wenigen Kilometern, in
Creches-sur-Saone biegen wir nach rechts in die D31 ab. Nun geht es hinauf in die Weinberge. Wir
fahren kreuz und quer, immer weiter bergan, grobe Richtung: Westen. Es ist unmöglich den Weg auf
der Karte mit zu verfolgen, wenn man nicht an jeder Kreuzung anhält. Und Anhalten geht im Moment
nicht - die Strecke macht zu viel Spaß! Wir passieren Ouroux und erreichen einen großen
Kreisverkehr in der Nähe von Monsols. Ah ja, jetzt paßt auch die Karte wieder. </para>
<para>Nun geht es weiter nach Süden. Die D23 führ kilometerlang schön kurvig durch Wälder.
Die D9 führt dann ins Tal hinab. Hier fahren wir ein kurzes Stück auf der Hauptstraße D485 nach
Norden und biegen gleich wieder links auf die D9 ab. Ein kurzes Stück bergan und dann nochmal
links: die D54 nach Gandris. Kurven, Kurven, Kurven! In Gandris treffen wir auf die D504 die aus dem
Tal kommt und nach Westen führt. Noch gut 10 km schöne Strecke und wir sind in Cublize. Hier gibt
es einen Campingplatz in der Nähe des Sees. Da bleiben wir für heute.</para>
</content>
</article>
</mycms>
##########################################################
sample $xsl:
------------------------------------------------------------------------
[2001-11-01 03:44:39] derick@php.net
Can you make a backtrace and provide a short reproducing script?
Derick
------------------------------------------------------------------------
[2001-11-01 03:41:25] jens@ja-web.de
php-4.1.0-RC1 on Linux RH 7.2, Apache-1.3.20
'./configure' '--with-config-file-path=/etc' '--with-xml'
'--with-mysql=/usr' '--with-apxs=/usr/sbin/apxs' '--with-ttf=/usr'
'--with-gd=/usr/' '--with-jpeg-dir=/usr' '--with-png-dir=/usr/lib'
'--with-tiff-dir=/usr/lib' '--with-zlib' '--enable-memory-limit'
'--enable-track-vars' '--disable-debug' '--enable-xslt'
'--with-xslt-sablot' '--without-pear' '--with-t1lib=/usr'
'--with-pdflib=/usr/local/lib'
'--enable-bcmath'
when I access php-pages that use xslt functions to transform xml data I often get errors in apache
like " [notice] child pid 27300 exit signal Segmentation fault (11)"
------------------------------------------------------------------------
Edit this bug report at http://bugs.php.net/?id=13896&edit=1