diff options
-rw-r--r-- | lib/libpam.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/libpam.c b/lib/libpam.c index 9ae33f08..998710b1 100644 --- a/lib/libpam.c +++ b/lib/libpam.c @@ -1031,7 +1031,11 @@ pnm_writepaminit(struct pam * const pamP) { interpretTupleType(pamP); - pamP->len = MIN(pamP->size, sizeof(struct pam)); + if (pamP->size >= PAM_STRUCT_SIZE(comment_p) && + pamP->len < PAM_STRUCT_SIZE(comment_p)) + pamP->comment_p = NULL; + + pamP->len = MIN(pamP->size, PAM_STRUCT_SIZE(opacity_plane)); switch (PAM_FORMAT_TYPE(pamP->format)) { case PAM_TYPE: |