Fix several leaks on error paths
PATCH 6/10 Fix several leaks on error paths
In several cases space is allocated for a filename but not freed if open of that file fails.
Signed-off-by Eric Sandeen <[email protected]>
---
btt/aqd.c +2 -0
@@ -43,6 +43,8 @@ void *aqd_alloc(struct d_info *dip)sprintf (oname,"%s_%s_aqd.dat" , aqd_name, dip->dip_name);if ((ap->fp =my_fopen (oname,"w" )) =NULL ) {perror (oname); +free (oname); +free (ap);return NULL ; }add_file (ap->fp, oname);
btt/bno_dump.c +3 -2
@@ -31,9 +31,10 @@ static FILE *bno_dump_open(struct d_info *dip, char rwc) oname =malloc (strlen (bno_dump_name) +strlen (dip->dip_name) +32 );sprintf (oname,"%s_%s_%c.dat" , bno_dump_name, dip->dip_name, rwc); -if ((fp =my_fopen (oname,"w" )) =NULL ) +if ((fp =my_fopen (oname,"w" )) =NULL ) {perror (oname); -else +free (oname); + }else add_file (fp, oname);return fp; }
btt/plat.c +2 -0
@@ -42,6 +42,8 @@ void *plat_alloc(struct d_info *dip, char *post)sprintf (oname,"%s%s_plat.dat" , dip->dip_name, post);if ((pp->fp =my_fopen (oname,"w" )) =NULL ) {perror (oname); +free (oname); +free (pp);return NULL ; }add_file (pp->fp, oname);
btt/seek.c +6 -4
@@ -51,9 +51,10 @@ static FILE *seek_open(char *str, char rw) oname =malloc (strlen (seek_name) +strlen (str) +32 );sprintf (oname,"%s_%s_%c.dat" , seek_name, str, rw); -if ((fp =my_fopen (oname,"w" )) =NULL ) +if ((fp =my_fopen (oname,"w" )) =NULL ) {perror (oname); -else +free (oname); + }else add_file (fp, oname);return fp;
@@ -226,9 +227,10 @@ void *seeki_alloc(struct d_info *dip, char *post) oname =malloc (strlen (sps_name) +strlen (dip->dip_name) +32 );sprintf (oname,"%s_%s.dat" , sps_name, dip->dip_name); -if ((sip->sps_fp =my_fopen (oname,"w" )) =NULL ) +if ((sip->sps_fp =my_fopen (oname,"w" )) =NULL ) {perror (oname); -else +free (oname); + }else add_file (sip->sps_fp, oname); }else sip->sps_fp =NULL ;