From 6571b23452d9595008f3081f237ba4253d5be500 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20B=C5=93sch?= Date: Sun, 13 Feb 2011 12:24:48 +0100 Subject: [PATCH 3/3] Use mp_asprintf in get_metadata instead of limited stack buffer. --- mplayer.c | 24 ++++++++++++------------ 1 files changed, 12 insertions(+), 12 deletions(-) diff --git a/mplayer.c b/mplayer.c index b03b5d8..f675752 100644 --- a/mplayer.c +++ b/mplayer.c @@ -438,7 +438,7 @@ static char *get_demuxer_info (char *tag) { } char *get_metadata (metadata_t type) { - char meta[128]; + char *meta; sh_audio_t * const sh_audio = mpctx->sh_audio; sh_video_t * const sh_video = mpctx->sh_video; @@ -460,18 +460,18 @@ char *get_metadata (metadata_t type) { else if (sh_video->format == 0x10000005) return strdup("h264"); else if (sh_video->format >= 0x20202020) - snprintf(meta, sizeof(meta), "%.4s", (char *) &sh_video->format); + mp_asprintf(&meta, "%.4s", (char *) &sh_video->format); else - snprintf(meta, sizeof(meta), "0x%08X", sh_video->format); - return strdup(meta); + mp_asprintf(&meta, "0x%08X", sh_video->format); + return meta; case META_VIDEO_BITRATE: - snprintf(meta, sizeof(meta), "%d kbps", (int) (sh_video->i_bps * 8 / 1024)); - return strdup(meta); + mp_asprintf(&meta, "%d kbps", (int) (sh_video->i_bps * 8 / 1024)); + return meta; case META_VIDEO_RESOLUTION: - snprintf(meta, sizeof(meta), "%d x %d", sh_video->disp_w, sh_video->disp_h); - return strdup(meta); + mp_asprintf(&meta, "%d x %d", sh_video->disp_w, sh_video->disp_h); + return meta; case META_AUDIO_CODEC: if (sh_audio->codec && sh_audio->codec->name) @@ -479,12 +479,12 @@ char *get_metadata (metadata_t type) { break; case META_AUDIO_BITRATE: - snprintf(meta, sizeof(meta), "%d kbps", (int)(sh_audio->i_bps * 8 / 1000)); - return strdup(meta); + mp_asprintf(&meta, "%d kbps", (int)(sh_audio->i_bps * 8 / 1000)); + return meta; case META_AUDIO_SAMPLES: - snprintf(meta, sizeof(meta), "%d Hz, %d ch.", sh_audio->samplerate, sh_audio->channels); - return strdup(meta); + mp_asprintf(&meta, "%d Hz, %d ch.", sh_audio->samplerate, sh_audio->channels); + return meta; /* check for valid demuxer */ case META_INFO_TITLE: -- 1.7.4.1