PNM decoder: prevent unsupported depth=2 PAM case.

Change-Id: I8476818908d71498dd80b07dc255aa008ffd16f5
This commit is contained in:
skal 2018-02-07 13:43:57 -08:00
parent 6de58603b7
commit fc09e6e252

View File

@ -117,7 +117,7 @@ static size_t ReadPAMFields(PNMInfo* const info, size_t off) {
}
}
if (!(info->seen_flags & TUPLE_FLAG)) {
if (info->depth > 0 && info->depth <= 4) {
if (info->depth > 0 && info->depth <= 4 && info->depth != 2) {
info->seen_flags |= TUPLE_FLAG;
info->bytes_per_px = info->depth * (info->max_value > 255 ? 2 : 1);
} else {
@ -165,7 +165,7 @@ static size_t ReadHeader(PNMInfo* const info) {
// perform some basic numerical validation
if (info->width <= 0 || info->height <= 0 ||
info->type <= 0 || info->type >= 9 ||
info->depth <= 0 || info->depth > 4 ||
info->depth <= 0 || info->depth == 2 || info->depth > 4 ||
info->bytes_per_px < info->depth ||
info->max_value <= 0 || info->max_value >= 65536) {
return 0;