Mercurial > mplayer.hg
changeset 25302:701de923a20d
Fix missing command line bug by making the input parameter constant.
author | ulion |
---|---|
date | Mon, 10 Dec 2007 01:43:33 +0000 |
parents | 456207bc0bd2 |
children | 9139c368a493 |
files | libaf/af.c |
diffstat | 1 files changed, 8 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/libaf/af.c Sun Dec 09 21:44:50 2007 +0000 +++ b/libaf/af.c Mon Dec 10 01:43:33 2007 +0000 @@ -102,13 +102,14 @@ /*/ Function for creating a new filter of type name. The name may contain the commandline parameters for the filter */ -static af_instance_t* af_create(af_stream_t* s, char* name) +static af_instance_t* af_create(af_stream_t* s, const char* name_with_cmd) { + char* name = strdup(name_with_cmd); char* cmdline = name; // Allocate space for the new filter and reset all pointers af_instance_t* new=malloc(sizeof(af_instance_t)); - if(!new){ + if (!name || !new) { af_msg(AF_MSG_ERROR,"[libaf] Could not allocate memory\n"); goto err_out; } @@ -137,17 +138,18 @@ if(AF_OK == new->info->open(new) && AF_ERROR < new->control(new,AF_CONTROL_POST_CREATE,&s->cfg)){ if(cmdline){ - if(AF_ERROR<new->control(new,AF_CONTROL_COMMAND_LINE,cmdline)) - return new; + if(!AF_ERROR<new->control(new,AF_CONTROL_COMMAND_LINE,cmdline)) + goto err_out; } - else - return new; + free(name); + return new; } err_out: free(new); af_msg(AF_MSG_ERROR,"[libaf] Couldn't create or open audio filter '%s'\n", name); + free(name); return NULL; }