Martin Mathieson wrote:
Joerg Mayer wrote:
On Wed, Jul 19, 2006 at 06:51:26PM +0000, etxrab@xxxxxxxxxxxxx wrote:
http://anonsvn.wireshark.org/viewvc/viewvc.cgi?view=rev&revision=18766
User: etxrab
Date: 2006/07/19 06:51 PM
Log:
From Martin Mathieson:
This patch:
- adds headers found in later versions of the msrp drafts
- fixes a problem where wrong length values were used while parsing the
request/status line and it was going beyond linelen
- "Transaktion" -> "Transaction"
- status code now appears as a numerical field
- removes unused parameters from check_msrp_header()
- tidies up some indentation
It has survived some fuzz-testing.
I'm still not sure that this is correct: which conditions may lead to
the function to return -1?
ciao
Joerg
My reading of the comment for tvb_find_line_end in tvbuff.h (I haven't
read the function itself) is that when 'desegment' is set to FALSE, it
can never return -1. Here is the comment:
* Return the length of the line (not counting the line terminator at
* the end), or, if we don't find a line terminator:
*
* if "deseg" is true, return -1;
*
* if "deseg" is false, return the amount of data remaining in
* the buffer.
When it reaches the end of the tvb, tvb_find_line_end() will set
'next_offset' beyond the end of the buffer, so at the next test,
tvb_offset_exists() will fail. Or am I missing something? (I didn't
write this loop, I only reindented it). I think we're OK if the
function matches the description above.
Regards,
Martin
_______________________________________________
Wireshark-dev mailing list
Wireshark-dev@xxxxxxxxxxxxx
http://www.wireshark.org/mailman/listinfo/wireshark-dev
To be complete, the last part of the comment states:
* Set "*next_offset" to the offset of the character past the line
* terminator, or past the end of the buffer if we don't find a line
* terminator. (It's not set if we return -1.)
This indicates to me that next_offset should be set when 'desegment' is
on and we reached the end of the buffer.
Regards,
Martin