On Jan 26, 2011, at 10:28 AM, Simone Caruso wrote: > > Now i need to read the array (i read mod_alias.c): > for(k = 0; k < reqc->aliases->nelts ; k++){ > alias = (alias_t *)&reqc->aliases->elts[k]; > isalias = alias_matches(r->uri, alias->src); > if(isalias > 0) > break; > } > >
Do this: alias = (alias_t *)reqc->aliases->elts; for (k = 0; k < reqc->aliases->nelts ; k++, alias++){ isalias = alias_matches(r->uri, alias->src); if(isalias > 0) break; } > I don't understand why, when k=2, alias structure is filled with wrong > addresses: > > (gdb) > 658 isalias = alias_matches(r->uri, alias->src); > (gdb) > > Program received signal SIGSEGV, Segmentation fault. > 0x00007fc350e6784f in alias_matches (uri=0x94f820 "/", > alias_fakename=0xda000000000094ff <Address 0xda000000000094ff out of > bounds>) > > > I tried a for like this without success (like mod_alias.c): > for(k = 0; k < reqc->aliases->nelts -1 ; ++k){ > > > Any idea? > thanks! > > > -- > Simone Caruso > IT Consultant > +39 349 65 90 805 > p.iva: 03045250838 >