[MPlayer-dev-eng] [PATCH]printf format string used everywhere
Frédéric Marchal
fmarchal at perso.be
Wed Sep 15 13:38:28 CEST 2010
Hello,
I'm submitting this trivial patch to force the use of a format string in every printf-like
function. It has two advantages:
1) In the unlikely case where the string to print contains a sequence that looks like a
valid format specifier, the function won't fail while reading the missing arguments.
2) It is possible to compile with -Wformat -Werror=format-security in the CFLAGS and
increase the confidence that every printf-like function is parsing the right arguments.
Frederic
---
Index: libmpcodecs/vd_ffmpeg.c
===================================================================
--- libmpcodecs/vd_ffmpeg.c (révision 32250)
+++ libmpcodecs/vd_ffmpeg.c (copie de travail)
@@ -227,7 +227,7 @@ static void mp_msp_av_log_callback(void *ptr, int
print_prefix= strchr(fmt, '\n') != NULL;
vsnprintf(buf, sizeof(buf), fmt, vl);
- mp_msg(type, mp_level, buf);
+ mp_msg(type, mp_level, "%s", buf);
}
static void set_format_params(struct AVCodecContext *avctx, enum PixelFormat fmt){
Index: stream/librtsp/rtsp_rtp.c
===================================================================
--- stream/librtsp/rtsp_rtp.c (révision 32250)
+++ stream/librtsp/rtsp_rtp.c (copie de travail)
@@ -218,7 +218,7 @@ parse_destination (const char *line)
len = strlen (parse1) - strlen (parse2)
- strlen (RTSP_SETUP_DESTINATION) + 1;
dest = (char *) malloc (len + 1);
- snprintf (dest, len, parse1 + strlen (RTSP_SETUP_DESTINATION));
+ snprintf (dest, len, "%s", parse1 + strlen (RTSP_SETUP_DESTINATION));
free (line_copy);
return dest;
Index: vidix/mtrr.c
===================================================================
--- vidix/mtrr.c (révision 32250)
+++ vidix/mtrr.c (copie de travail)
@@ -57,7 +57,7 @@ int mtrr_set_type(unsigned base,unsigned size,int
char sout[256];
unsigned wr_len;
sprintf(sout,"base=0x%08X size=0x%08X type=%s\n",base,size,stype);
- wr_len = fprintf(mtrr_fd,sout);
+ wr_len = fprintf(mtrr_fd,"%s",sout);
/*printf("MTRR: %s\n",sout);*/
fclose(mtrr_fd);
return wr_len == strlen(sout) ? 0 : EPERM;
More information about the MPlayer-dev-eng
mailing list