On Fri, Jun 25, 2004 at 11:16:02PM +0200, Nando Santagata wrote:
> On Fri, Jun 25, 2004 at 08:00:25PM +0200, Davide Bolcioni wrote:
> > >{
> > > char *filename
> > > size = strlen(home) + 3 + strlen(CONF_FILE);
> > > snprint(filename, size, "%s/%s", home, CONF_FILE);
> > > /* ... */
> > >}
> > >Come dicevi? HAHAHAHAH.......
> > Non parlo per gli altri, ma io non capisco: il frammento sopra indicato
> > neanche si compila e comunque a filename non viene assegnato alcun
> > valore, quindi punta a caso nella memoria e snprintf() ci spara quanto
> > indicato con buona pace di ci? che c'era prima ?
> > Mi manca qualcosa ?
>
> Cercava un bug, ed eccone uno, pronto per l'uso...
1. Questo sopra e` uno stralcio di codice (una funzione... senza neppure
prototipo, ovvio che non si compila.)
2. Il puntatore filename deve puntare ad un area di memoria scrivibile:
char *filename = (char *) malloc(strlen(home)+strlen(CONF_FILE)+3);
if (!filename) return;
...
--
#include <stdio.h> /* Un nome che e` tutto un programma */
int main(int argc, char **argv) { puts(argv[0]); return 0; }
==============================================================
-- Giulio 'dullboy' Iotti, ppp0 at autistici dot org
|