"Dmitry E. Oboukhov" <un...@debian.org> writes: > I have a package which contains a code like following: > > #include <stdio.h> > > FILE *file_handle; > > int foo(int something, const char *fmt, ...) > { > // some statements > .... > va_list ap; > int res = vfprintf(file_handle, fmt, ap); > va_end(ap); > return res; > } > > This code works fine by libc wouldn't be rebuilt (new versions, or new > gcc - this moment is ambiguous to me). > Then this code begins segfaulting into this place. > If we try to rebuild our package, it will begin to work fine again.
Should that work at all? man va_arg: va_end() Each invocation of va_start() must be matched by a corresponding invo- cation of va_end() in the same function. After the call va_end(ap) the variable ap is undefined. Multiple traversals of the list, each brack- eted by va_start() and va_end() are possible. va_end() may be a macro or a function. You need to call va_start() before the vfprintf or not call va_end(). Does that solve the problem? MfG Goswin -- To UNSUBSCRIBE, email to debian-devel-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org