|
|
||||||
|
#1
|
|
|
|
|
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? Leif |
|
|
|
#2
|
|
|
|
|
Den Wed, 16 Mar 2011 18:20:40 +0100 skrev Leif Neland:
[..] > 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). Mvh Kent |
|
#3
|
|
|
|
|
On 16-03-2011 13:20, Leif Neland wrote:
> 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; > } > single_binding_found bliver ikke tildelt andre værdier nogetsteds; men > da den ikke er initialiseret, kan den så ikke indeholde hvadsomhelst? De mangler helt klart en: = 0 på single_binding_found. Til gengæld har de jo så skrevet koden så den kan håndtere både lowercase og uppercase *. :-) Arne |
|
#4
|
|
|
|
|
On 16-03-2011 13:33, Kent Friis wrote:
> Den Wed, 16 Mar 2011 18:20:40 +0100 skrev Leif Neland: > > 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. Arne |
|
#5
|
|
|
|
|
Den Wed, 16 Mar 2011 20:19:35 -0400 skrev Arne Vajhøj:
> On 16-03-2011 13:33, Kent Friis wrote: > > 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 |
|
|
| Lignende emner | |
| C/C++ og array initialisering Hej Vi er et par stykker som ikke kan forstå hvorfor det er muligt at skrive dette: ----- #include <iostream> void method(unsigned int size) { |
|
| initialisering af const i c++ Hej Når man initialiserer en const i en class kan man så ikke benytte utility func. til at sikre værdien af god nok. I nedenstående eksempel har har en begrænsning mellem... |
|
| Initialisering af et array Hej alle Jeg er lige begyndt at kikke på ASP. Jeg har erfaring med programmering og lidt kendskab til PHP, så det ser rimeligt nemt ud. Men i det eksempel jeg så, skulle... |
|
| Initialisering af formular I en simpel database (Access XP) har jeg oprettet en formular til at oprette, slette og søge poster. Når formularen åbnes, vises indholdet af den første post i formularen.... |
|
|
Al tidssætning er GMT. Klokken er nu 10:04. | Privacy Policy
|