summaryrefslogtreecommitdiffstats
path: root/mplayer.c
diff options
context:
space:
mode:
authoralbeu <albeu@b3059339-0415-0410-9bf9-f77b7e298cf2>2006-03-23 15:17:23 +0000
committeralbeu <albeu@b3059339-0415-0410-9bf9-f77b7e298cf2>2006-03-23 15:17:23 +0000
commit8b5c1be40d58cbcc62cc79bf5cb3a857fc3393bc (patch)
tree517142d9960275c3d2e6b6629a543aca4d14dff7 /mplayer.c
parentefb50daf6eefac3b2eb36ec6a3ffb92889b98122 (diff)
downloadmpv-8b5c1be40d58cbcc62cc79bf5cb3a857fc3393bc.tar.bz2
mpv-8b5c1be40d58cbcc62cc79bf5cb3a857fc3393bc.tar.xz
Fix osd_show_msg alignment and make sure msg strings
get properly 0 terminated. Thanks to Jonas Jermann (jjermann _At_ gmx _Dot_ net) for the report. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17930 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'mplayer.c')
-rw-r--r--mplayer.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/mplayer.c b/mplayer.c
index 1a7edf413c..f378553eeb 100644
--- a/mplayer.c
+++ b/mplayer.c
@@ -1091,6 +1091,7 @@ static mp_osd_msg_t* osd_msg_stack = NULL;
static void set_osd_msg(int id, int level, int time, char* fmt, ...) {
mp_osd_msg_t *msg,*last=NULL;
va_list va;
+ int r;
// look if the id is already in the stack
for(msg = osd_msg_stack ; msg && msg->id != id ;
@@ -1107,8 +1108,9 @@ static void set_osd_msg(int id, int level, int time, char* fmt, ...) {
}
// write the msg
va_start(va,fmt);
- vsnprintf(msg->msg, 63, fmt, va);
+ r = vsnprintf(msg->msg, 64, fmt, va);
va_end(va);
+ if(r >= 64) msg->msg[63] = 0;
// set id and time
msg->id = id;
msg->level = level;
@@ -3881,7 +3883,7 @@ if (stream->type==STREAMTYPE_DVDNAV && dvd_nav_still)
rm_osd_msg(OSD_MSG_OSD_STATUS);
} break;
case MP_CMD_OSD_SHOW_TEXT : {
- set_osd_msg(OSD_MSG_TEXT,1,osd_duration,"%64s",cmd->args[0].v.s);
+ set_osd_msg(OSD_MSG_TEXT,1,osd_duration,"%-.63s",cmd->args[0].v.s);
} break;
case MP_CMD_LOADFILE : {
play_tree_t* e = play_tree_new();