Den Wed, 16 Mar 2011 20:19:35 -0400 skrev Arne Vajhøj:
> On 16-03-2011 13:33, Kent Friis wrote:
>> Den Wed, 16 Mar 2011 18:20:40 +0100 skrev Leif Neland:
>>> I asterisk er der opstået en bug, måske har jeg fundet den 
>>> Jeg har ellers ikke lavet noget c i dette millenium, men...
>>>
>>> i channels/chan_sip.c linie 12978
>>>
>>> I funktionens header er bl.a.
>>>           int wildcard_found = 0;
>>>           int single_binding_found;
>>>
>>> ... senere
>>>                  if (!strcasecmp(curi, "*")) {
>>>                           wildcard_found = 1;
>>>                   } else {
>>>                           single_binding_found = 1;
>>>                   }
>>>
>>>                   if (wildcard_found&&  (ast_strlen_zero(expires) ||
>>> expire != 0 || single_binding_found)) {
>>> ...
>>> single_binding_found bliver ikke tildelt andre værdier nogetsteds; men
>>> da den ikke er initialiseret, kan den så ikke indeholde hvadsomhelst?
>>
>> Jo. En lokal variabel kan indeholde hvad der nu ligger på stack'en eller
>> i registret.
>>
>> Af samme grund compiler jeg mit eget kode med gcc -Wall -O1, da det
>> får compileren til at advare om den type fejl (uden -O1 opdager den ikke
>> den type fejl).
>
> Det sidste afhænger vist af version (og muligvis platform).
>
> GCC 4.4.2 på win32 giver warning med -Wall uanset -O.
Det var da på tide det blev rettet.
Mvh
Kent
-- 
"The Brothers are History"