From 90fd277545647a48fe36a73f89288db6ce148c54 Mon Sep 17 00:00:00 2001 From: Toomas Soome Date: Tue, 12 May 2020 19:01:26 +0300 Subject: 13427 ppm: overflow in conversion Reviewed by: Igor Kozhukhov Reviewed by: Andrew Stormont Approved by: Robert Mustacchi --- usr/src/uts/common/io/ppm/ppm_subr.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'usr/src') diff --git a/usr/src/uts/common/io/ppm/ppm_subr.c b/usr/src/uts/common/io/ppm/ppm_subr.c index d0e3c5788c..af19c622ce 100644 --- a/usr/src/uts/common/io/ppm/ppm_subr.c +++ b/usr/src/uts/common/io/ppm/ppm_subr.c @@ -831,7 +831,7 @@ ppm_init_cb(dev_info_t *dip) int ppm_init_lyr(ppm_dc_t *dc, dev_info_t *dip) { - char *str = "ppm_init_lyr"; + char *str = "ppm_init_lyr"; int err = 0; ldi_ident_t li; @@ -994,8 +994,10 @@ ppm_stoi(char *ss, uint_t *val) int hex_ = 0, base = D_BASE; int digit; - if ((cp = strchr(ss, '=')) == NULL) - return (*val = (uint_t)-1); + if ((cp = strchr(ss, '=')) == NULL) { + *val = UINT_MAX; + return (-1); + } cp++; if ((*cp == '0') && (*++cp == 'x')) { @@ -1064,10 +1066,11 @@ ppm_convert(char *symbol, uint_t *val) char *s; struct ppm_confdefs *pcfp; + *val = UINT_MAX; if ((s = strchr(symbol, '=')) == NULL) { cmn_err(CE_WARN, "ppm_convert: token \"%s\" syntax error in " "ppm.conf file", symbol); - return (*val = (uint_t)-1); + return (-1); } s++; @@ -1078,7 +1081,7 @@ ppm_convert(char *symbol, uint_t *val) cmn_err(CE_WARN, "ppm_convert: Unrecognizable token \"%s\" " "in ppm.conf file", symbol); - return (*val = (uint_t)-1); + return (-1); } -- cgit v1.2.3