Thanks Dave for the path.  I've applied it to the 4.6 branch and it should
go out in 4.6.1.


On Tue, Sep 4, 2012 at 2:12 PM, Dave Trudgian <
[email protected]> wrote:

> Sorry,
>
> Should be an extra comment line in the patch to make it more obvious...
> It's 11 chars + 9 chars + 1 char for the terminating null terminator = 21
> chars!
>
> DT
>
>
> On Tuesday, September 4, 2012 3:59:16 PM UTC-5, Dave Trudgian wrote:
>>
>> Here's a patch that fixes the problem (for me).
>>
>> The problem occurs where TandemResultsParser writePepXML() code is
>> sending a filename and a string buffer to rampConstructInputFileName **in
>> the RAMPFace code. It's trying to add prefixes/extension to the tandem
>> filename in order to find the corresponding mzXML/mzML file. Unfortunately
>> the buffer declaration is too short. The longest prefix/extension
>> combination tried is 21 characters. The buffer is declared in
>> TandemResultsParser only as the original filename length +20 chars.
>>
>> This was difficult to hunt down, as the prefixes are specified in
>> TandemResultsParser, with the suffixes in RAMPFace - also the crash occurs
>> where the RAMPFace code tries adding additional '/' at the start of the
>> string, over and above the prefixes that are passed in by the
>> TandemResultsParser code. This seems pointless, as it will result in search
>> paths above from the root directory, e.g.
>>
>> /../../EColi_07_10_12_**1microlitre_01.tandem.mzXML.gz
>>
>> ... but I've left this behavior and just modified the buffer size.
>>
>> Whether or not the problem code causes a complete crash will depend on
>> what else is around in the memory at the relevant location at the time. I
>> guess in my case I saw no problems with gzipped files due to where things
>> were being allocated in memory from my particular build of TPP on this
>> machine.
>>
>> DT
>>
>>
>>
>> Apply to src/Parsers/Algorithm2XML/**Tandem2XML/**TandemResultsParser.cxx
>> NB: line numbers might be slightly off. This is against previous TPP
>> release.
>>
>> @@ -678,7 +678,10 @@ bool TandemResultsParser::**writePepXML()
>>                 if (strMzXMLFile.length() >= 5 && 
>> strMzXMLFile.compare(**strMzXMLFile.length()
>> - 5, 5, ".xtan") == 0)
>>                         strMzXMLFile.erase(**strMzXMLFile.length() - 5);
>>                 int len;
>> -               char *fname=new char[len=strMzXMLFile.length()**+20];
>> +               // DCT fix: buffer needs to have additional 21 chars, not
>> 20:
>> +               //          longest prefix tried is /../../xml/
>> 11 chars
>> +               //          longest suffix tried is .mzXML.gz           9
>> chars
>> +               char *fname=new char[len=strMzXMLFile.length()**+21];
>>
>>                 rampConstructInputFileName(**
>> fname,len,strMzXMLFile.data())**;
>>                  pf = rampOpenFile(fname);
>>
>>
>>
>>
>>  --
> You received this message because you are subscribed to the Google Groups
> "spctools-discuss" group.
> To view this discussion on the web visit
> https://groups.google.com/d/msg/spctools-discuss/-/XXnZTDbx2ToJ.
>
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/spctools-discuss?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups 
"spctools-discuss" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/spctools-discuss?hl=en.

Reply via email to