summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
authorToomas Soome <tsoome@me.com>2020-05-12 19:01:26 +0300
committerToomas Soome <tsoome@me.com>2021-01-26 11:20:01 +0200
commit90fd277545647a48fe36a73f89288db6ce148c54 (patch)
tree68989d88e4cf39cb031e7d8a4be66091d17c99ba /usr/src
parentdca2b4edbfdf8b595d031a5a2e7eaf98738f5055 (diff)
downloadillumos-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.c13
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);
}