mirror of
https://github.com/webmproject/libwebp.git
synced 2024-12-27 06:08:21 +01:00
pnmdec,PAM: set bytes_per_px based on depth when missing
this avoids setting bytes_per_px < depth causing an undersized allocation for rgb import resulting in a crash. BUG=b/37930872 Change-Id: I32a86f91528acc084a53d08c9fde9f2f1270a603
This commit is contained in:
parent
4d7084350e
commit
645f0c53de
@ -113,7 +113,7 @@ static size_t ReadPAMFields(PNMInfo* const info, size_t off) {
|
|||||||
}
|
}
|
||||||
if (!(info->seen_flags & TUPLE_FLAG)) {
|
if (!(info->seen_flags & TUPLE_FLAG)) {
|
||||||
info->seen_flags |= TUPLE_FLAG;
|
info->seen_flags |= TUPLE_FLAG;
|
||||||
info->bytes_per_px = 3;
|
info->bytes_per_px = info->depth * (info->max_value > 255 ? 2 : 1);
|
||||||
}
|
}
|
||||||
if (info->seen_flags != ALL_NEEDED_FLAGS) {
|
if (info->seen_flags != ALL_NEEDED_FLAGS) {
|
||||||
fprintf(stderr, "PAM: incomplete header.\n");
|
fprintf(stderr, "PAM: incomplete header.\n");
|
||||||
@ -156,6 +156,7 @@ static size_t ReadHeader(PNMInfo* const info) {
|
|||||||
if (info->width <= 0 || info->height <= 0 ||
|
if (info->width <= 0 || info->height <= 0 ||
|
||||||
info->type <= 0 || info->type >= 9 ||
|
info->type <= 0 || info->type >= 9 ||
|
||||||
info->depth <= 0 || info->depth > 4 ||
|
info->depth <= 0 || info->depth > 4 ||
|
||||||
|
info->bytes_per_px < info->depth ||
|
||||||
info->max_value <= 0 || info->max_value >= 65536) {
|
info->max_value <= 0 || info->max_value >= 65536) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user