# HG changeset patch # User reimar # Date 1352148120 0 # Node ID a1e273544f613b8712cb0437a9e0d4dd26aefa80 # Parent c8d891e708dcabee4a1694a4c5c15f0a2335fae0 Simplify, avoid crash when malloc/calloc fails. diff -r c8d891e708dc -r a1e273544f61 sub/font_load.c --- a/sub/font_load.c Mon Nov 05 20:39:52 2012 +0000 +++ b/sub/font_load.c Mon Nov 05 20:42:00 2012 +0000 @@ -67,7 +67,6 @@ font_desc_t* read_font_desc(const char* fname,float factor,int verbose){ unsigned char sor[1024]; unsigned char sor2[1024]; -font_desc_t *desc; FILE *f = NULL; char *dn; //struct stat fstate; @@ -77,8 +76,8 @@ int fontdb=-1; int first=1; -desc=malloc(sizeof(font_desc_t));if(!desc) goto fail_out; -memset(desc,0,sizeof(font_desc_t)); +font_desc_t *desc=calloc(1, sizeof(*desc)); +if(!desc) goto fail_out; f=fopen(fname,"rt");if(!f){ mp_msg(MSGT_OSD, MSGL_V, "font: can't open file: %s\n",fname); goto fail_out;} @@ -344,9 +343,11 @@ fail_out: if (f) fclose(f); - free(desc->fpath); - free(desc->name); - free(desc); + if (desc) { + free(desc->fpath); + free(desc->name); + free(desc); + } return NULL; }