[prev in list] [next in list] [prev in thread] [next in thread]
List: busybox
Subject: Re: [PATCH] dhcpc.c: fix found_opts
From: Lambrecht_Jürgen <J.Lambrecht () TELEVIC ! com>
Date: 2011-10-12 8:06:09
Message-ID: 4E954A71.8030604 () televic ! com
[Download RAW message or body]
On 10/11/2011 05:33 PM, Denys Vlasenko wrote:
>
> 2011/10/11 Lambrecht Jürgen <J.Lambrecht@televic.com>:
> > Hello,
> >
> > The patch below fixes a bug in networking/udhcp/dhcpc.c. Here my
> reasoning:
> > There are 256 dhcp options supported, so 256 bits to store.
> > You want to store that in an unsigned (BITMAP define), 32b in my case.
> > So you need an unsigned array of 256/sizeoff(unsigned) == 8 elements.
>
> sizeof(unsigned) is 4, because sizeof() measures size in bytes, not bits.
>
oops, indeed (I was thinking too much in hardware ;-)
>
>
> 256/4 = 64.
>
> > In
> > the code, the define BBITS is used for this, and the bug is that *8 is
> > added to that define, resulting in an array of only 1 element (32b) to
> > store 256 bits.
>
> I disassembled this:
>
> memset(found_opts, 0, sizeof(found_opts));
>
> and I see that this memset fills 8 words, not 1 word:
>
> f: b9 08 00 00 00 mov $0x8,%ecx
> 14: 31 c0 xor %eax,%eax
> 16: f3 ab rep stos %eax,%es:(%edi)
>
> --
> vda
>
Indeed, I was wrong - I took the wrong conclusions from my debugging..
So forget the patch.
(my problems were actually caused by not understanding 'putenv' and how
to use it)
Thanks,
Jürgen
--
Jürgen Lambrecht
R&D Associate
Tel: +32 (0)51 303045 Fax: +32 (0)51 310670
http://www.televic-rail.com
Televic Rail NV - Leo Bekaertlaan 1 - 8870 Izegem - Belgium
Company number 0825.539.581 - RPR Kortrijk
_______________________________________________
busybox mailing list
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic