Segfault in GDML parsing

From: Mark Messier <messier_at_indiana.edu>
Date: Tue, 13 Nov 2007 17:59:34 -0500


Hello,

In recent root versions (5.17.04) I am getting seg faults when I load a GDML file. The same file works if I roll the root version back to 5.15 so I'm fairly certain this is due to changes in the GDML parsing inside root.

I think the problem is related to long lines. For example, if I replace these lines:

  <physvol>

       <volumeref ref="vRockSouth"/>
       <position name="pRockSouth" unit="cm"
         x="0"
         y="-(3.0*(1559.6))/2+(((1187.+2./12)*(30.48))-((((1187. 
+2./12)*(30.48))+
(1559.6)/2)-(3.0*(1559.6))/2)-(2.0*(30.48)))+((((1258.+2./12)* (30.48))-35*(30.48
))-((((1187.+2./12)*(30.48))+(1559.6)/2)-(3.0*(1559.6))/2)-(((1187. +2./12)*(30.4
8))-((((1187.+2./12)*(30.48))+(1559.6)/2)-(3.0*(1559.6))/2)-(2.0* (30.48))))/2"

         z="-(10.0*(295.0*(30.48)))/2+((10.0*(295.0*(30.48)))-((10.0* (295.0*(30.4
8)))/2-((383.+4./12.)*(30.48))+(10.5*(30.48)+(36.0*(2.54))))-((383. +4./12.)*(30.
48)))/2"

/>

     </physvol>

with

<physvol>

       <volumeref ref="vRockSouth"/>
       <position name="pRockSouth" unit="cm"
         x="0"
         y="-261.64"
         z="-(10.0*(295.0*(30.48)))/2+((10.0*(295.0*(30.48)))-((10.0* 
(295.0*(30.4
8)))/2-((383.+4./12.)*(30.48))+(10.5*(30.48)+(36.0*(2.54))))-((383. +4./12.)*(30.
48)))/2"

/>

     </physvol>

[notice I replaced the long expression for y with a short one] the file is parsed correctly. Is there some recently introduced upper limit on the size of the fields? If it helps locate the problem, I can report that the expression above is correctly evaluated by TF1. I can provide the complete .gdml file and a root macro that loads it if it would help test.

Cheers,
Mark


Mark Messier                                         messier_at_indiana.edu
Department of Physics            http://www.physics.indiana.edu/~messier
Indiana University                                 Phone: (812) 855-0236
Bloomington, IN 47405                                Fax: (812) 855-0440
Received on Wed Nov 14 2007 - 00:00:10 CET

This archive was generated by hypermail 2.2.0 : Wed Nov 14 2007 - 05:50:02 CET