diff options
Diffstat (limited to 'lib/libpam.c')
-rw-r--r-- | lib/libpam.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/libpam.c b/lib/libpam.c index 998710b1..1f58aa7b 100644 --- a/lib/libpam.c +++ b/lib/libpam.c @@ -1029,12 +1029,16 @@ pnm_writepaminit(struct pam * const pamP) { pamP->bytes_per_sample = pnm_bytespersample(pamP->maxval); - interpretTupleType(pamP); - if (pamP->size >= PAM_STRUCT_SIZE(comment_p) && pamP->len < PAM_STRUCT_SIZE(comment_p)) pamP->comment_p = NULL; + if (pamP->size >= PAM_STRUCT_SIZE(allocation_depth) && + pamP->len < PAM_STRUCT_SIZE(allocation_depth)) + pamP->allocation_depth = 0; + + interpretTupleType(pamP); + pamP->len = MIN(pamP->size, PAM_STRUCT_SIZE(opacity_plane)); switch (PAM_FORMAT_TYPE(pamP->format)) { |