Ethereal

Re: [Ethereal-dev] [patch] Fix for tvb_uncompress/http content-encoding: gzip
Google
 
Web Ethereal.com

Home | Introduction | Documentation | Lists | FAQ | Development | Wiki | Bugs

Ethereal-dev: August 2004


Any reason this didn't get checked in?

KB

> This is a patch for epan/tvbuff.c
> tvb_uncompress didn't parse the gzip header flags correctly.
> When looking to see if bit 3 (bit 0 being least significant),
> was set, the checked in code does:
> if (flag & 0x3) {
> instead of something like:
> if (flag & (1 << 0x3))  {
>
> This was causing gzip encoded packets to not be uncompressed
> for me.
>
> My diff does bit shifting, obviously there are other ways to
> do this. If someone else has a stong preference for another
> form of bit masking, like (flag & 0x8), they are welcome to
> substitue that for mine.
>
> Index: epan/tvbuff.c
> ===================================================================
> --- epan/tvbuff.c       (revision 11523)
> +++ epan/tvbuff.c       (working copy)
> @@ -2342,7 +2342,7 @@
>                         /* Skip past the MTIME, XFL, and OS fields. */
>                         c += 7;
>
> -                       if (flags & 0x2) {
> +                       if (flags & (1 << 0x2)) {
>                                 /* An Extra field is present. */
>                                 gint xsize = (gint)(*c |
>                                     (*(c + 1) << 8));
> @@ -2350,7 +2350,7 @@
>                                 c += xsize;
>                         }
>
> -                       if (flags & 0x3) {
> +                       if (flags & (1 << 0x3)) {
>                                 /* A null terminated filename */
>
>                                 while (*c != '\0') {
> @@ -2360,7 +2360,7 @@
>                                 c++;
>                         }
>
> -                       if (flags & 0x4) {
> +                       if (flags & (1 << 0x4)) {
>                                 /* A null terminated comment */
>
>                                 while (*c != '\0') {
>
>
>



Powered by MHonArc 2.6.10