From 1a5e4fd8c5b99478b4e08a69261930bb12aa948b Mon Sep 17 00:00:00 2001 From: Alex Converse Date: Tue, 3 May 2011 11:19:31 -0700 Subject: Replace strncpy() with av_strlcpy(). --- ffmpeg.c | 3 +-- libavcodec/ac3enc.c | 43 ++++++++++++++++++++++--------------------- libavcodec/ass.c | 4 ++-- libavformat/movenc.c | 2 +- libavformat/mp3enc.c | 3 ++- libavutil/log.c | 3 ++- libpostproc/postprocess.c | 3 ++- 7 files changed, 32 insertions(+), 29 deletions(-) diff --git a/ffmpeg.c b/ffmpeg.c index d728f140f0..c5868110f2 100644 --- a/ffmpeg.c +++ b/ffmpeg.c @@ -3695,8 +3695,7 @@ static int opt_streamid(const char *opt, const char *arg) char *p; char idx_str[16]; - strncpy(idx_str, arg, sizeof(idx_str)); - idx_str[sizeof(idx_str)-1] = '\0'; + av_strlcpy(idx_str, arg, sizeof(idx_str)); p = strchr(idx_str, ':'); if (!p) { fprintf(stderr, diff --git a/libavcodec/ac3enc.c b/libavcodec/ac3enc.c index bf106eb22a..a35ff29d1a 100644 --- a/libavcodec/ac3enc.c +++ b/libavcodec/ac3enc.c @@ -33,6 +33,7 @@ #include "libavutil/audioconvert.h" #include "libavutil/avassert.h" +#include "libavutil/avstring.h" #include "libavutil/crc.h" #include "libavutil/opt.h" #include "avcodec.h" @@ -1578,10 +1579,10 @@ static void dprint_options(AVCodecContext *avctx) char strbuf[32]; switch (s->bitstream_id) { - case 6: strncpy(strbuf, "AC-3 (alt syntax)", 32); break; - case 8: strncpy(strbuf, "AC-3 (standard)", 32); break; - case 9: strncpy(strbuf, "AC-3 (dnet half-rate)", 32); break; - case 10: strncpy(strbuf, "AC-3 (dnet quater-rate", 32); break; + case 6: av_strlcpy(strbuf, "AC-3 (alt syntax)", 32); break; + case 8: av_strlcpy(strbuf, "AC-3 (standard)", 32); break; + case 9: av_strlcpy(strbuf, "AC-3 (dnet half-rate)", 32); break; + case 10: av_strlcpy(strbuf, "AC-3 (dnet quater-rate", 32); break; default: snprintf(strbuf, 32, "ERROR"); } av_dlog(avctx, "bitstream_id: %s (%d)\n", strbuf, s->bitstream_id); @@ -1608,9 +1609,9 @@ static void dprint_options(AVCodecContext *avctx) if (opt->audio_production_info) { av_dlog(avctx, "mixing_level: %ddB\n", opt->mixing_level); switch (opt->room_type) { - case 0: strncpy(strbuf, "notindicated", 32); break; - case 1: strncpy(strbuf, "large", 32); break; - case 2: strncpy(strbuf, "small", 32); break; + case 0: av_strlcpy(strbuf, "notindicated", 32); break; + case 1: av_strlcpy(strbuf, "large", 32); break; + case 2: av_strlcpy(strbuf, "small", 32); break; default: snprintf(strbuf, 32, "ERROR (%d)", opt->room_type); } av_dlog(avctx, "room_type: %s\n", strbuf); @@ -1622,9 +1623,9 @@ static void dprint_options(AVCodecContext *avctx) av_dlog(avctx, "dialnorm: %ddB\n", opt->dialogue_level); if (s->channel_mode == AC3_CHMODE_STEREO) { switch (opt->dolby_surround_mode) { - case 0: strncpy(strbuf, "notindicated", 32); break; - case 1: strncpy(strbuf, "on", 32); break; - case 2: strncpy(strbuf, "off", 32); break; + case 0: av_strlcpy(strbuf, "notindicated", 32); break; + case 1: av_strlcpy(strbuf, "on", 32); break; + case 2: av_strlcpy(strbuf, "off", 32); break; default: snprintf(strbuf, 32, "ERROR (%d)", opt->dolby_surround_mode); } av_dlog(avctx, "dsur_mode: %s\n", strbuf); @@ -1636,9 +1637,9 @@ static void dprint_options(AVCodecContext *avctx) if (s->bitstream_id == 6) { if (opt->extended_bsi_1) { switch (opt->preferred_stereo_downmix) { - case 0: strncpy(strbuf, "notindicated", 32); break; - case 1: strncpy(strbuf, "ltrt", 32); break; - case 2: strncpy(strbuf, "loro", 32); break; + case 0: av_strlcpy(strbuf, "notindicated", 32); break; + case 1: av_strlcpy(strbuf, "ltrt", 32); break; + case 2: av_strlcpy(strbuf, "loro", 32); break; default: snprintf(strbuf, 32, "ERROR (%d)", opt->preferred_stereo_downmix); } av_dlog(avctx, "dmix_mode: %s\n", strbuf); @@ -1655,23 +1656,23 @@ static void dprint_options(AVCodecContext *avctx) } if (opt->extended_bsi_2) { switch (opt->dolby_surround_ex_mode) { - case 0: strncpy(strbuf, "notindicated", 32); break; - case 1: strncpy(strbuf, "on", 32); break; - case 2: strncpy(strbuf, "off", 32); break; + case 0: av_strlcpy(strbuf, "notindicated", 32); break; + case 1: av_strlcpy(strbuf, "on", 32); break; + case 2: av_strlcpy(strbuf, "off", 32); break; default: snprintf(strbuf, 32, "ERROR (%d)", opt->dolby_surround_ex_mode); } av_dlog(avctx, "dsurex_mode: %s\n", strbuf); switch (opt->dolby_headphone_mode) { - case 0: strncpy(strbuf, "notindicated", 32); break; - case 1: strncpy(strbuf, "on", 32); break; - case 2: strncpy(strbuf, "off", 32); break; + case 0: av_strlcpy(strbuf, "notindicated", 32); break; + case 1: av_strlcpy(strbuf, "on", 32); break; + case 2: av_strlcpy(strbuf, "off", 32); break; default: snprintf(strbuf, 32, "ERROR (%d)", opt->dolby_headphone_mode); } av_dlog(avctx, "dheadphone_mode: %s\n", strbuf); switch (opt->ad_converter_type) { - case 0: strncpy(strbuf, "standard", 32); break; - case 1: strncpy(strbuf, "hdcd", 32); break; + case 0: av_strlcpy(strbuf, "standard", 32); break; + case 1: av_strlcpy(strbuf, "hdcd", 32); break; default: snprintf(strbuf, 32, "ERROR (%d)", opt->ad_converter_type); } av_dlog(avctx, "ad_conv_type: %s\n", strbuf); diff --git a/libavcodec/ass.c b/libavcodec/ass.c index beb1ba1141..327a77bb45 100644 --- a/libavcodec/ass.c +++ b/libavcodec/ass.c @@ -21,6 +21,7 @@ #include "avcodec.h" #include "ass.h" +#include "libavutil/avstring.h" /** * Generate a suitable AVCodecContext.subtitle_header for SUBTITLE_ASS. @@ -117,8 +118,7 @@ int ff_ass_add_rect(AVSubtitle *sub, const char *dialog, rects[sub->num_rects]->type = SUBTITLE_ASS; rects[sub->num_rects]->ass = av_malloc(len + dlen + 1); strcpy (rects[sub->num_rects]->ass , header); - strncpy(rects[sub->num_rects]->ass + len, dialog, dlen); - rects[sub->num_rects]->ass[len+dlen] = 0; + av_strlcpy(rects[sub->num_rects]->ass + len, dialog, dlen + 1); sub->num_rects++; return dlen; } diff --git a/libavformat/movenc.c b/libavformat/movenc.c index 0458844fc3..0327bdf797 100644 --- a/libavformat/movenc.c +++ b/libavformat/movenc.c @@ -827,7 +827,7 @@ static int mov_write_video_tag(AVIOContext *pb, MOVTrack *track) memset(compressor_name,0,32); /* FIXME not sure, ISO 14496-1 draft where it shall be set to 0 */ if (track->mode == MODE_MOV && track->enc->codec && track->enc->codec->name) - strncpy(compressor_name,track->enc->codec->name,31); + av_strlcpy(compressor_name,track->enc->codec->name,32); avio_w8(pb, strlen(compressor_name)); avio_write(pb, compressor_name, 31); diff --git a/libavformat/mp3enc.c b/libavformat/mp3enc.c index d46e67b70c..10abe0994c 100644 --- a/libavformat/mp3enc.c +++ b/libavformat/mp3enc.c @@ -24,6 +24,7 @@ #include "id3v1.h" #include "id3v2.h" #include "rawenc.h" +#include "libavutil/avstring.h" #include "libavutil/intreadwrite.h" #include "libavutil/opt.h" @@ -32,7 +33,7 @@ static int id3v1_set_string(AVFormatContext *s, const char *key, { AVMetadataTag *tag; if ((tag = av_metadata_get(s->metadata, key, NULL, 0))) - strncpy(buf, tag->value, buf_size); + av_strlcpy(buf, tag->value, buf_size); return !!tag; } diff --git a/libavutil/log.c b/libavutil/log.c index cfeb21cd5a..ddfd31f6c3 100644 --- a/libavutil/log.c +++ b/libavutil/log.c @@ -26,6 +26,7 @@ #include #include +#include "avstring.h" #include "avutil.h" #include "log.h" @@ -120,7 +121,7 @@ void av_log_default_callback(void* ptr, int level, const char* fmt, va_list vl) count=0; } colored_fputs(av_clip(level>>3, 0, 6), line); - strncpy(prev, line, sizeof line); + av_strlcpy(prev, line, sizeof line); } static void (*av_log_callback)(void*, int, const char*, va_list) = av_log_default_callback; diff --git a/libpostproc/postprocess.c b/libpostproc/postprocess.c index d7c99e29da..4864b02198 100644 --- a/libpostproc/postprocess.c +++ b/libpostproc/postprocess.c @@ -86,6 +86,7 @@ try to unroll inner for(x=0 ... loop to avoid these damn if(x ... checks //#define DEBUG_BRIGHTNESS #include "postprocess.h" #include "postprocess_internal.h" +#include "libavutil/avstring.h" unsigned postproc_version(void) { @@ -762,7 +763,7 @@ pp_mode *pp_get_mode_by_name_and_quality(const char *name, int quality) ppMode->maxClippedThreshold= 0.01; ppMode->error=0; - strncpy(temp, name, GET_MODE_BUFFER_SIZE); + av_strlcpy(temp, name, GET_MODE_BUFFER_SIZE); av_log(NULL, AV_LOG_DEBUG, "pp: %s\n", name); -- cgit v1.2.3