Changeset 663

Show
Ignore:
Timestamp:
10/07/08 10:06:58 (1 month ago)
Author:
laidler
Message:

#152: Protect against terminal ampersands in the incoming CGI line

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/pysynphot/lib/etc.py

    r633 r663  
    1414    from the few elements it actually uses. """ 
    1515    d={} 
    16     keylist=['spectrum','output','obsmode','instrument','func'
     16    keylist=['spectrum','output','obsmode','instrument','func','etcid'
    1717              
    1818    for pair in parlist: 
    19         name,value=pair.split('=') 
    20         if name in keylist: 
    21             d[name]=value.strip('"') 
     19        try: 
     20            name,value=pair.split('=') 
     21            if name in keylist: 
     22                d[name]=value.strip('"') 
     23        except ValueError,e: 
     24            #Check to see if the string is empty 
     25            if len(pair)>0: 
     26                raise(e) 
    2227    return d 
    2328 
  • trunk/pysynphot/test/cos_etc_test.py

    r596 r663  
    803803        tst=self.sp.redshift(self.z) 
    804804        self.assert_(self.sp.wave.min() == tst.wave.min(),"wave.min=%f"%tst.wave.min()) 
    805                              
     805 
     806 
     807 
     808class SrvParserTestCase(testutil.FPTestCase): 
     809    def testtermamp(self): 
     810        self.cgistring='SpecSourcerateSpec&spectrum="spec(earthshine.fits)*0.5+rn(spec(Zodi.fits),band(johnson,v),22.7,vegamag)+(spec(el1215a.fits)+spec(el1302a.fits)+spec(el1356a.fits)+spec(el2471a.fits))"&instrument="cos,fuv,g130m,c1309"&output=/Users/dmclean/IdeaProjects/etcDev/JUNIT/testFiles/specResults/2008/001/specAV5.fits&area="45238.93416"&mode="a"&grtbl="mtab$*_tmg.fits"&cmptbl="mtab$*_tmc.fits"&' 
     811        self.tokens=self.cgistring.split('&') 
     812        d=etc.getparms(self.tokens[1:]) 
     813 
     814     
    806815if __name__ == '__main__': 
    807816    if 'debug' in sys.argv: