returning a pointer to something on the stack is something I call an error (how do you ensure that the buffer will not get overwritten by another function call ?) A+
Message du 02/06/05 15:25 De : "Dimi Paun" A : pouech-eric@wanadoo.fr, wine-devel@winehq.org Copie à : Objet : Re: fixes for -Wmissing-declarations and -Wwrite-strings warnings
From: "Pouech Eric DMI AEI CAEN"
looking at the patch, I saw something in the code that made me sick: char *audioAutoDetect(void) { [snip] char *driversFound[10]; [snip] return driversFound[0]; [snip] }
can someone fix that broken code ?
Yeah, it's not pretty, but just by looking at this snippet there is no obvious error in the above AFAICT.
On Thu, 2 Jun 2005, Pouech Eric DMI AEI CAEN wrote:
returning a pointer to something on the stack is something I call an error (how do you ensure that the buffer will not get overwritten by another function call ?)
It's not returning a pointer to something on the stack. It is returning driversFound[0] which is a pointer to a string which may have been malloc()'ed (you stripped that part of the code).
char *audioAutoDetect(void) { [snip] char *driversFound[10]; [snip]
maybe driversFound[0]=malloc(something);
return driversFound[0]; [snip] }
returning a pointer to something on the stack is something I call an error
Right, but it's not doing that :)