The following issues were found
libavfilter/colorspace.c
2 issues
Line: 148
Column: 9
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
// special ycgco matrix
if (coeffs->cr == 0.25 && coeffs->cg == 0.5 && coeffs->cb == 0.25) {
memcpy(rgb2yuv, ycgco_matrix, sizeof(double) * 9);
return;
} else if (coeffs->cr == 1 && coeffs->cg == 1 && coeffs->cb == 1) {
memcpy(rgb2yuv, gbr_matrix, sizeof(double) * 9);
return;
}
Reported by FlawFinder.
Line: 151
Column: 9
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
memcpy(rgb2yuv, ycgco_matrix, sizeof(double) * 9);
return;
} else if (coeffs->cr == 1 && coeffs->cg == 1 && coeffs->cb == 1) {
memcpy(rgb2yuv, gbr_matrix, sizeof(double) * 9);
return;
}
rgb2yuv[0][0] = coeffs->cr;
rgb2yuv[0][1] = coeffs->cg;
Reported by FlawFinder.
libavcodec/h264_mp4toannexb_bsf.c
2 issues
Line: 52
Column: 9
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
uint8_t start_code_size = ps < 0 ? 0 : *out_size == 0 || ps ? 4 : 3;
if (copy) {
memcpy(*out + start_code_size, in, in_size);
if (start_code_size == 4) {
AV_WB32(*out, 1);
} else if (start_code_size) {
(*out)[0] =
(*out)[1] = 0;
Reported by FlawFinder.
Line: 103
Column: 9
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
}
if ((err = av_reallocp(&out, total_size + padding)) < 0)
return err;
memcpy(out + total_size - unit_size - 4, nalu_header, 4);
bytestream2_get_bufferu(gb, out + total_size - unit_size, unit_size);
pps:
if (!unit_nb && !sps_done++) {
unit_nb = bytestream2_get_byteu(gb); /* number of pps unit(s) */
pps_offset = total_size;
Reported by FlawFinder.
libavcodec/h264_picture.c
2 issues
Line: 80
Column: 5
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
for (int i = 0; i < 2; i++)
dst->field_poc[i] = src->field_poc[i];
memcpy(dst->ref_poc, src->ref_poc, sizeof(src->ref_poc));
memcpy(dst->ref_count, src->ref_count, sizeof(src->ref_count));
dst->poc = src->poc;
dst->frame_num = src->frame_num;
dst->mmco_reset = src->mmco_reset;
Reported by FlawFinder.
Line: 81
Column: 5
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
dst->field_poc[i] = src->field_poc[i];
memcpy(dst->ref_poc, src->ref_poc, sizeof(src->ref_poc));
memcpy(dst->ref_count, src->ref_count, sizeof(src->ref_count));
dst->poc = src->poc;
dst->frame_num = src->frame_num;
dst->mmco_reset = src->mmco_reset;
dst->long_ref = src->long_ref;
Reported by FlawFinder.
libavfilter/f_drawgraph.c
2 issues
Line: 35
Column: 5
CWE codes:
119
120
Suggestion:
Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length
typedef struct DrawGraphContext {
const AVClass *class;
char *key[4];
float min, max;
char *fg_str[4];
AVExpr *fg_expr[4];
uint8_t bg[4];
int mode;
Reported by FlawFinder.
Line: 37
Column: 5
CWE codes:
119
120
Suggestion:
Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length
char *key[4];
float min, max;
char *fg_str[4];
AVExpr *fg_expr[4];
uint8_t bg[4];
int mode;
int slide;
int w, h;
Reported by FlawFinder.
libavfilter/opencl/deshake.cl
2 issues
Line: 510
CWE codes:
758
ulong *desc_p = &desc;
for (int i = 0; i < 8; i++) {
total_dist += popcount(desc_p[i] ^ prev_desc_p[i]);
}
if (total_dist < DISTANCE_THRESHOLD) {
write_to_1d_arrvec(
matches_buf,
Reported by Cppcheck.
Line: 510
CWE codes:
758
ulong *desc_p = &desc;
for (int i = 0; i < 8; i++) {
total_dist += popcount(desc_p[i] ^ prev_desc_p[i]);
}
if (total_dist < DISTANCE_THRESHOLD) {
write_to_1d_arrvec(
matches_buf,
Reported by Cppcheck.
libavfilter/tests/drawutils.c
2 issues
Line: 40
Column: 13
CWE codes:
119
120
Suggestion:
Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length
(int)(16 - strlen(desc->name)), "");
r = ff_draw_init(&draw, f, 0);
if (r < 0) {
char buf[128];
av_strerror(r, buf, sizeof(buf));
printf("no: %s\n", buf);
continue;
}
ff_draw_color(&draw, &color, (uint8_t[]) { 1, 0, 0, 1 });
Reported by FlawFinder.
Line: 37
Column: 27
CWE codes:
126
if (!desc->name)
continue;
printf("Testing %s...%*s", desc->name,
(int)(16 - strlen(desc->name)), "");
r = ff_draw_init(&draw, f, 0);
if (r < 0) {
char buf[128];
av_strerror(r, buf, sizeof(buf));
printf("no: %s\n", buf);
Reported by FlawFinder.
libavfilter/tests/formats.c
2 issues
Line: 24
Column: 8
CWE codes:
134
Suggestion:
Use a constant for the format specification
#include "libavutil/channel_layout.h"
#include "libavfilter/formats.c"
#undef printf
const int64_t avfilter_all_channel_layouts[] = {
AV_CH_FRONT_CENTER,
AV_CH_FRONT_CENTER|AV_CH_LOW_FREQUENCY,
AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT,
Reported by FlawFinder.
Line: 101
Column: 5
CWE codes:
119
120
Suggestion:
Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length
int main(void)
{
const int64_t *cl;
char buf[512];
int i;
const char *teststrings[] ={
"blah",
"1",
"2",
Reported by FlawFinder.
libavfilter/vf_bitplanenoise.c
2 issues
Line: 107
Column: 5
CWE codes:
119
120
Suggestion:
Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length
const int mask = (1 << (s->bitplane - 1));
const int factor = (1 << s->depth) - 1;
float stats[4] = { 0 };
char metabuf[128];
int plane, y, x, bit;
AVFrame *out = s->filter ? NULL : in;
if (!out) {
out = ff_get_video_buffer(outlink, outlink->w, outlink->h);
Reported by FlawFinder.
Line: 182
Column: 9
CWE codes:
119
120
Suggestion:
Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length
}
for (plane = 0; plane < s->nb_planes; plane++) {
char key[32];
stats[plane] /= s->planewidth[plane] * s->planeheight[plane];
snprintf(key, sizeof(key), "lavfi.bitplanenoise.%d.%d", plane, s->bitplane);
snprintf(metabuf, sizeof(metabuf), "%f", 1. - 2.* fabs((stats[plane] - 0.5)));
av_dict_set(&out->metadata, key, metabuf, 0);
Reported by FlawFinder.
libavfilter/vf_blackframe.c
2 issues
Line: 61
Column: 5
CWE codes:
134
Suggestion:
Use a constant for the format specification
}
#define SET_META(key, format, value) \
snprintf(buf, sizeof(buf), format, value); \
av_dict_set(metadata, key, buf, 0)
static int filter_frame(AVFilterLink *inlink, AVFrame *frame)
{
AVFilterContext *ctx = inlink->dst;
Reported by FlawFinder.
Line: 72
Column: 5
CWE codes:
119
120
Suggestion:
Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length
int pblack = 0;
uint8_t *p = frame->data[0];
AVDictionary **metadata;
char buf[32];
for (i = 0; i < frame->height; i++) {
for (x = 0; x < inlink->w; x++)
s->nblack += p[x] < s->bthresh;
p += frame->linesize[0];
Reported by FlawFinder.
libavfilter/vf_chromaber_vulkan.c
2 issues
Line: 237
Column: 13
CWE codes:
362/367!
Suggestion:
Set up the correct permissions (e.g., using setuid()) and try to open the file directly
0, NULL, 0, NULL, FF_ARRAY_ELEMS(bar), bar);
in->layout[i] = bar[0].newLayout;
in->access[i] = bar[0].dstAccessMask;
out->layout[i] = bar[1].newLayout;
out->access[i] = bar[1].dstAccessMask;
}
Reported by FlawFinder.
Line: 240
Column: 14
CWE codes:
362/367!
Suggestion:
Set up the correct permissions (e.g., using setuid()) and try to open the file directly
in->access[i] = bar[0].dstAccessMask;
out->layout[i] = bar[1].newLayout;
out->access[i] = bar[1].dstAccessMask;
}
ff_vk_bind_pipeline_exec(avctx, s->exec, s->pl);
ff_vk_update_push_exec(avctx, s->exec, VK_SHADER_STAGE_COMPUTE_BIT,
Reported by FlawFinder.