Commit 238a8ae9 authored by Derek Buitenhuis's avatar Derek Buitenhuis

pixdesc: Only check against valid entries when iterating over lists of enums

Some of these enums have gaps in between their values, since they correspond
to the values in various specs, instead of being an incrementing list.

Fixes segfaults when, for example, using the valid API call:

   av_color_primaries_from_name("jecdec-p22");
Signed-off-by: 's avatarDerek Buitenhuis <derek.buitenhuis@gmail.com>
parent 8c20ea8e
......@@ -2737,7 +2737,12 @@ int av_color_primaries_from_name(const char *name)
int i;
for (i = 0; i < FF_ARRAY_ELEMS(color_primaries_names); i++) {
size_t len = strlen(color_primaries_names[i]);
size_t len;
if (!color_primaries_names[i])
continue;
len = strlen(color_primaries_names[i]);
if (!strncmp(color_primaries_names[i], name, len))
return i;
}
......@@ -2756,7 +2761,12 @@ int av_color_transfer_from_name(const char *name)
int i;
for (i = 0; i < FF_ARRAY_ELEMS(color_transfer_names); i++) {
size_t len = strlen(color_transfer_names[i]);
size_t len;
if (!color_transfer_names[i])
continue;
len = strlen(color_transfer_names[i]);
if (!strncmp(color_transfer_names[i], name, len))
return i;
}
......@@ -2775,7 +2785,12 @@ int av_color_space_from_name(const char *name)
int i;
for (i = 0; i < FF_ARRAY_ELEMS(color_space_names); i++) {
size_t len = strlen(color_space_names[i]);
size_t len;
if (!color_space_names[i])
continue;
len = strlen(color_space_names[i]);
if (!strncmp(color_space_names[i], name, len))
return i;
}
......@@ -2794,7 +2809,12 @@ int av_chroma_location_from_name(const char *name)
int i;
for (i = 0; i < FF_ARRAY_ELEMS(chroma_location_names); i++) {
size_t len = strlen(chroma_location_names[i]);
size_t len;
if (!chroma_location_names[i])
continue;
len = strlen(chroma_location_names[i]);
if (!strncmp(chroma_location_names[i], name, len))
return i;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment