Print this page
11472 fix libdemangle rust changes
@@ -237,11 +237,11 @@
return (B_FALSE);
}
rem = sv_remaining(&sv);
- if (rem < len || len == SIZE_MAX) {
+ if (rem < len) {
st->rds_error = EINVAL;
return (B_FALSE);
}
/* Is this the last segment before the terminating E? */
@@ -382,17 +382,15 @@
sv_init_sv(svp, &sv);
return (B_TRUE);
}
/*
- * 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,
uint64_t *restrict valp)
{