diff options
Diffstat (limited to 'usr/src/lib/libdemangle/common')
| -rw-r--r-- | usr/src/lib/libdemangle/common/rust.c | 12 | 
1 files changed, 5 insertions, 7 deletions
| diff --git a/usr/src/lib/libdemangle/common/rust.c b/usr/src/lib/libdemangle/common/rust.c index ec5e07b354..b3aeb3a2a1 100644 --- a/usr/src/lib/libdemangle/common/rust.c +++ b/usr/src/lib/libdemangle/common/rust.c @@ -239,7 +239,7 @@ rustdem_parse_name_segment(rustdem_state_t *st, strview_t *svp, boolean_t first)  	rem = sv_remaining(&sv); -	if (rem < len || len == SIZE_MAX) { +	if (rem < len) {  		st->rds_error = EINVAL;  		return (B_FALSE);  	} @@ -384,13 +384,11 @@ rustdem_parse_hash(rustdem_state_t *st, strview_t *svp)  }  /* - * A 10 digit value would imply a name 1Gb or larger in size.  It seems - * unlikely to the point of absurdity any such value could every possibly - * be valid (or even have compiled properly).  This also prevents the - * uint64_t conversion from possibly overflowing since the value must always - * be below 10 * UINT32_MAX. + * We have to pick an arbitrary limit here; 999,999,999 fits comfortably + * within an int32_t, so let's go with that, as it seems unlikely we'd + * ever see a larger value in context.   */ -#define	MAX_DIGITS 10 +#define	MAX_DIGITS 9  static boolean_t  rustdem_parse_num(rustdem_state_t *restrict st, strview_t *restrict svp, | 
