diff options
author | Toomas Soome <tsoome@me.com> | 2020-05-12 19:01:26 +0300 |
---|---|---|
committer | Toomas Soome <tsoome@me.com> | 2021-01-26 11:20:01 +0200 |
commit | 90fd277545647a48fe36a73f89288db6ce148c54 (patch) | |
tree | 68989d88e4cf39cb031e7d8a4be66091d17c99ba /usr/src | |
parent | dca2b4edbfdf8b595d031a5a2e7eaf98738f5055 (diff) | |
download | illumos-gate-90fd277545647a48fe36a73f89288db6ce148c54.tar.gz |
13427 ppm: overflow in conversion
Reviewed by: Igor Kozhukhov <igor@dilos.org>
Reviewed by: Andrew Stormont <andyjstormont@gmail.com>
Approved by: Robert Mustacchi <rm@fingolfin.org>
Diffstat (limited to 'usr/src')
-rw-r--r-- | usr/src/uts/common/io/ppm/ppm_subr.c | 13 |
1 files changed, 8 insertions, 5 deletions
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); } |