Bug in _scanf.c

Bernhard Reutner-Fischer rep.dot.nop at gmail.com
Fri Mar 29 12:38:38 UTC 2013


On 23 March 2013 14:36, Pirmin Walthert <infos at nappsoft.com> wrote:
> On 03/22/2013 09:14 PM, Bernhard Reutner-Fischer wrote:
>>
>> On 18 March 2013 09:55:08 Pirmin Walthert <infos at nappsoft.com> wrote:
>>>
>>> Hello
>>>
>>> It seems like commit e567c399ff86d007d8c4586f0dd5e0ca61e283ca
>>>
>>> <http://git.uclibc.org/uClibc/commit/?h=0.9.33&id=e567c399ff86d007d8c4586f0dd5e0ca61e283ca>
>>> had introduced a bug into _scanf.c.
>>
>>
>> I believe that Nathans patch applied to master by Bernd fixes this. I will
>> put it on the 0.9.33 branch shortly.
>> Thanks,
>>
>>
>> Sent with AquaMail for Android
>> http://www.aqua-mail.com
>>
>>
> Hello
>
> No sorry, it doesn't fix this bug. I've just recompiled everything
> (9a7b71facfcaee5f3a45429358c55fcd5377c509, patched with Nathan's patch and
> mine removed) and I get back the old behavior.
>
> This is for example my netstat output:
>
> tcp        0      0 0.0.0.0:4128            0.0.0.0:* LISTEN
> tcp        0      0 0.0.0.0:10050           0.0.0.0:* LISTEN
> tcp        0      0 0.0.0.0:2020            0.0.0.0:* LISTEN
> tcp        0      0 0.0.0.0:3333            0.0.0.0:* LISTEN
> tcp        0      0 0.0.0.0:11              0.0.0.0:* LISTEN
> tcp        0      0 0.0.0.0:5038            0.0.0.0:* LISTEN
> tcp        0      0 0.0.0.0:80              0.0.0.0:* LISTEN
> tcp        0      0 0.0.0.0:5555            0.0.0.0:* LISTEN
> tcp        0      0 0.0.0.0:53              0.0.0.0:* LISTEN
> tcp        0      0 0.0.0.0:5080            0.0.0.0:* LISTEN
> tcp        0      0 0.0.0.0:3128            0.0.0.0:* LISTEN
> tcp        0      0 0.0.0.0:3129            0.0.0.0:* LISTEN
> tcp        0      0 0.0.0.0:5050            0.0.0.0:* LISTEN
> tcp        0      0 0.0.0.0:443             0.0.0.0:* LISTEN
> tcp        0      0 0.0.0.0:1723            0.0.0.0:* LISTEN
> tcp        0      0 0.0.0.0:1723            0.0.0.0:60104 ESTABLISHED
> tcp        0    208 0.0.0.0:2020            0.0.0.0:34062 ESTABLISHED
> tcp        0      0 0.0.0.0:2020            0.0.0.0:33960 ESTABLISHED
> netstat: /proc/net/tcp6: No such file or directory
> udp        0      0 ::9ce4:b6bf:ece4:b6bf:a8e4:b6bf:53
> ::9ce4:b6bf:ece4:b6bf:a8e4:b6bf:*
> udp        0      0 ::9ce4:b6bf:ece4:b6bf:a8e4:b6bf:67
> ::9ce4:b6bf:ece4:b6bf:a8e4:b6bf:*
> udp        0      0 ::9ce4:b6bf:ece4:b6bf:a8e4:b6bf:67
> ::9ce4:b6bf:ece4:b6bf:a8e4:b6bf:*
> udp        0      0 ::9ce4:b6bf:ece4:b6bf:a8e4:b6bf:67
> ::9ce4:b6bf:ece4:b6bf:a8e4:b6bf:*
> udp        0      0 ::9ce4:b6bf:ece4:b6bf:a8e4:b6bf:67
> ::9ce4:b6bf:ece4:b6bf:a8e4:b6bf:*
> udp        0      0 ::9ce4:b6bf:ece4:b6bf:a8e4:b6bf:67
> ::9ce4:b6bf:ece4:b6bf:a8e4:b6bf:*
> udp        0      0 ::9ce4:b6bf:ece4:b6bf:a8e4:b6bf:67
> ::9ce4:b6bf:ece4:b6bf:a8e4:b6bf:*
> udp        0      0 ::9ce4:b6bf:ece4:b6bf:a8e4:b6bf:67
> ::9ce4:b6bf:ece4:b6bf:a8e4:b6bf:*
> udp        0      0 ::9ce4:b6bf:ece4:b6bf:a8e4:b6bf:69
> ::9ce4:b6bf:ece4:b6bf:a8e4:b6bf:*
> udp        0      0 ::9ce4:b6bf:ece4:b6bf:a8e4:b6bf:123
> ::9ce4:b6bf:ece4:b6bf:a8e4:b6bf:*
> udp        0      0 ::9ce4:b6bf:ece4:b6bf:a8e4:b6bf:1194
> ::9ce4:b6bf:ece4:b6bf:a8e4:b6bf:*
> udp        0      0 ::9ce4:b6bf:ece4:b6bf:a8e4:b6bf:5060
> ::9ce4:b6bf:ece4:b6bf:a8e4:b6bf:*
> netstat: /proc/net/udp6: No such file or directory
> raw        0      0 ::a0e4:b6bf:f0e4:b6bf:ace4:b6bf:1
> ::a0e4:b6bf:f0e4:b6bf:ace4:b6bf:* 1
> raw        0      0 ::a0e4:b6bf:f0e4:b6bf:ace4:b6bf:47
> ::a0e4:b6bf:f0e4:b6bf:ace4:b6bf:* 47
>
> => IP's won't be read (see the last 3 tcp lines) and the udp output is
> garbage.
>
> This has definitely to do with the changes introduced with
> e567c399ff86d007d8c4586f0dd5e0ca61e283ca (found this out with git-bisecting)
> and can be fixed with my patch (I know, there might be "simpler"
> ways/shorter patches to fix this, I just tried to restore the old behavior
> (before e567c399ff86d007d8c4586f0dd5e0ca61e283ca) with keeping the intended
> functional changes and without digging to deep into the complete _scanf
> code. I'm sorry that I didn't spend any time with writing a testcase, but
> buggy outputs of programs relying on scanf is enough I guess.
>
> Here an output from the same system with my patch applied:
>
> ~ # netstat -na
> Active Internet connections (servers and established)
> Proto Recv-Q Send-Q Local Address           Foreign Address State
> tcp        0      0 0.0.0.0:4128            0.0.0.0:* LISTEN
> tcp        0      0 0.0.0.0:10050           0.0.0.0:* LISTEN
> tcp        0      0 0.0.0.0:2020            0.0.0.0:* LISTEN
> tcp        0      0 0.0.0.0:3333            0.0.0.0:* LISTEN
> tcp        0      0 0.0.0.0:11              0.0.0.0:* LISTEN
> tcp        0      0 127.0.0.1:5038          0.0.0.0:* LISTEN
> tcp        0      0 0.0.0.0:80              0.0.0.0:* LISTEN
> tcp        0      0 0.0.0.0:5555            0.0.0.0:* LISTEN
> tcp        0      0 0.0.0.0:53              0.0.0.0:* LISTEN
> tcp        0      0 0.0.0.0:5080            0.0.0.0:* LISTEN
> tcp        0      0 0.0.0.0:3128            0.0.0.0:* LISTEN
> tcp        0      0 0.0.0.0:3129            0.0.0.0:* LISTEN
> tcp        0      0 0.0.0.0:5050            0.0.0.0:* LISTEN
> tcp        0      0 0.0.0.0:443             0.0.0.0:* LISTEN
> tcp        0      0 0.0.0.0:1723            0.0.0.0:* LISTEN
> tcp        0      0 77.58.32.53:34724       94.198.255.212:3328 TIME_WAIT
> tcp        0      0 77.58.32.53:1723        213.200.236.234:60115
> ESTABLISHED
> tcp        0    208 192.168.240.12:2020     192.168.240.184:34354
> ESTABLISHED
> netstat: /proc/net/tcp6: No such file or directory
> udp        0      0 0.0.0.0:53 0.0.0.0:*
> udp        0      0 0.0.0.0:67 0.0.0.0:*
> udp        0      0 0.0.0.0:67 0.0.0.0:*
> udp        0      0 0.0.0.0:67 0.0.0.0:*
> udp        0      0 0.0.0.0:67 0.0.0.0:*
> udp        0      0 0.0.0.0:67 0.0.0.0:*
> udp        0      0 0.0.0.0:67 0.0.0.0:*
> udp        0      0 0.0.0.0:67 0.0.0.0:*
> udp        0      0 0.0.0.0:69 0.0.0.0:*
> udp        0      0 0.0.0.0:123 0.0.0.0:*
> udp        0      0 0.0.0.0:1194 0.0.0.0:*
> udp        0      0 127.0.0.1:5566 0.0.0.0:*
> udp        0      0 0.0.0.0:5060 0.0.0.0:*
> netstat: /proc/net/udp6: No such file or directory
> raw        0      0 77.58.32.53:47          213.200.236.234:* 47
> netstat: /proc/net/raw6: No such file or directory
> Active UNIX domain sockets (servers and established)
> Proto RefCnt Flags       Type       State         I-Node Path
> unix  2      [ ACC ]     STREAM     LISTENING       4098
> /var/cache/pdnsd.status
> unix  2      [ ACC ]     STREAM     LISTENING       3590 /tmp/php.socket-0
> unix  2      [ ACC ]     STREAM     LISTENING       3594 /tmp/php.socket-1
> unix  2      [ ]         DGRAM                      2836
> /var/run/hostapd/wlan0
> unix  2      [ ACC ]     STREAM     LISTENING       3705
> /var/run/callweaver.ctl
> unix  11     [ ]         DGRAM                      2505 /dev/log
> unix  2      [ ]         DGRAM                      3662
> unix  2      [ ]         DGRAM                      3659
> unix  2      [ ]         DGRAM                      3574
> unix  2      [ ]         DGRAM                      3568
> unix  2      [ ]         DGRAM                      3017
> unix  2      [ ]         DGRAM                      2738
> unix  2      [ ]         DGRAM                      2733
> unix  2      [ ]         DGRAM                      2658
> unix  2      [ ]         DGRAM                      2510

I have reverted Will's m modifier for now.
thanks,


More information about the uClibc mailing list