diff options
author | giraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8> | 2007-09-03 17:24:29 +0000 |
---|---|---|
committer | giraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8> | 2007-09-03 17:24:29 +0000 |
commit | 6a66ff83d67ba0ec0d0d7282ab7622cca914bf4d (patch) | |
tree | 6d5fa63d8d09d0752044498506a1c661f053f847 /lib | |
parent | d86b4780b8b92d68ca0e2d43c90deb57adebd8ae (diff) | |
download | netpbm-mirror-6a66ff83d67ba0ec0d0d7282ab7622cca914bf4d.tar.gz netpbm-mirror-6a66ff83d67ba0ec0d0d7282ab7622cca914bf4d.tar.xz netpbm-mirror-6a66ff83d67ba0ec0d0d7282ab7622cca914bf4d.zip |
Release 10.39.05
git-svn-id: http://svn.code.sf.net/p/netpbm/code/advanced@398 9d0c8265-081b-0410-96cb-a4ca84ce46f8
Diffstat (limited to 'lib')
-rw-r--r-- | lib/libpam.c | 23 | ||||
-rw-r--r-- | lib/libppm1.c | 3 |
2 files changed, 15 insertions, 11 deletions
diff --git a/lib/libpam.c b/lib/libpam.c index 362c1159..db8ff205 100644 --- a/lib/libpam.c +++ b/lib/libpam.c @@ -549,16 +549,20 @@ process_header_line(char const buffer[], pamP->maxval = atoi(value); headerSeenP->maxval = TRUE; } else if (strcmp(label, "TUPLTYPE") == 0) { - int len = strlen(pamP->tuple_type); - if (len + strlen(value) + 1 > sizeof(pamP->tuple_type)-1) - pm_error("TUPLTYPE value too long in PAM header"); - if (len == 0) - strcpy(pamP->tuple_type, value); + if (strlen(value) == 0) + pm_error("TUPLTYPE header does not have any tuple type text"); else { - strcat(pamP->tuple_type, "\n"); - strcat(pamP->tuple_type, value); + size_t const oldLen = strlen(pamP->tuple_type); + if (oldLen + strlen(value) + 1 > sizeof(pamP->tuple_type)-1) + pm_error("TUPLTYPE value too long in PAM header"); + if (oldLen == 0) + strcpy(pamP->tuple_type, value); + else { + strcat(pamP->tuple_type, " "); + strcat(pamP->tuple_type, value); + } + pamP->tuple_type[sizeof(pamP->tuple_type)-1] = '\0'; } - pamP->tuple_type[sizeof(pamP->tuple_type)-1] = '\0'; } else pm_error("Unrecognized header line: '%s'. " "Possible missing ENDHDR line?", label); @@ -708,12 +712,11 @@ pnm_readpaminitrestaspnm(FILE * const fileP, case 1: *formatP = RPGM_FORMAT; break; - default: { + default: pm_error("Cannot treat PAM image as PPM or PGM, " "because its depth (%u) " "is not 1 or 3.", pam.depth); } - } *colsP = pam.width; *rowsP = pam.height; diff --git a/lib/libppm1.c b/lib/libppm1.c index a7ea78cf..425f2ab1 100644 --- a/lib/libppm1.c +++ b/lib/libppm1.c @@ -135,7 +135,8 @@ ppm_readppminit(FILE * const fileP, case PBM_TYPE: *formatP = realFormat; - *maxvalP = 1; + /* See comment in pgm_readpgminit() about this maxval */ + *maxvalP = PPM_MAXMAXVAL; pbm_readpbminitrest(fileP, colsP, rowsP); break; |