[master] 4b70a66cf Proper error message when giving wrong types to backend/probe fields
Poul-Henning Kamp
phk at FreeBSD.org
Wed Aug 21 07:07:06 UTC 2019
commit 4b70a66cf7d2d7efdf84b777dd2f3d45b3668957
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date: Wed Aug 21 07:05:42 2019 +0000
Proper error message when giving wrong types to backend/probe fields
Fixes #3046
diff --git a/lib/libvcc/vcc_utils.c b/lib/libvcc/vcc_utils.c
index 0e6642552..8a08e9af9 100644
--- a/lib/libvcc/vcc_utils.c
+++ b/lib/libvcc/vcc_utils.c
@@ -329,12 +329,15 @@ vcc_UintVal(struct vcc *tl)
unsigned d = 0;
const char *p;
- Expect(tl, CNUM);
- for (p = tl->t->b; p < tl->t->e; p++) {
- d *= 10;
- d += *p - '0';
+ if (tl->t->tok != CNUM) {
+ Expect(tl, CNUM);
+ } else {
+ for (p = tl->t->b; p < tl->t->e; p++) {
+ d *= 10;
+ d += *p - '0';
+ }
+ vcc_NextToken(tl);
}
- vcc_NextToken(tl);
return (d);
}
@@ -344,6 +347,10 @@ vcc_DoubleVal(struct vcc *tl)
const size_t l = tl->t->e - tl->t->b;
char buf[l + 1];
+ if (tl->t->tok != CNUM && tl->t->tok != FNUM) {
+ Expect(tl, CNUM);
+ return (0);
+ }
assert(tl->t->tok == CNUM || tl->t->tok == FNUM);
memcpy(buf, tl->t->b, l);
vcc_NextToken(tl);
More information about the varnish-commit
mailing list