Mercurial > mplayer.hg
changeset 29594:331320b4557b
Limit amount of data allocated on stack, strlen(filename) is not a good idea for
file name strings that might come from arbitrary playlists, use PATH_MAX instead.
author | reimar |
---|---|
date | Wed, 02 Sep 2009 19:49:10 +0000 |
parents | 78bb10138aa4 |
children | 9e014b68ecb9 |
files | mplayer.c |
diffstat | 1 files changed, 6 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/mplayer.c Wed Sep 02 19:44:15 2009 +0000 +++ b/mplayer.c Wed Sep 02 19:49:10 2009 +0000 @@ -931,9 +931,13 @@ static void load_per_file_config (m_config_t* conf, const char *const file) { char *confpath; - char cfg[strlen(file)+10]; + char cfg[PATH_MAX]; char *name; + if (strlen(file) > PATH_MAX - 14) { + mp_msg(MSGT_CPLAYER, MSGL_WARN, "Filename is too long, can not load file or directory specific config files\n"); + return; + } sprintf (cfg, "%s.conf", file); name = strrchr(cfg, '/'); @@ -951,7 +955,7 @@ name++; if (use_filedir_conf) { - char dircfg[strlen(file)+14]; + char dircfg[PATH_MAX]; strcpy(dircfg, cfg); strcpy(dircfg + (name - cfg), "mplayer.conf"); try_load_config(conf, dircfg);