diff options
| author | Jonas Ådahl <jadahl@gmail.com> | 2015-03-19 16:56:23 +0800 |
|---|---|---|
| committer | Jonas Ådahl <jadahl@gmail.com> | 2015-04-08 17:38:10 +0800 |
| commit | 0583ce741ed16315af591e9e4547a1e3d2c26e0b (patch) | |
| tree | 88fdf64283dcf1c7ed55115552033cefba88c110 /src/scanner.c | |
| parent | config: use simpler regexp syntax to get dot version (diff) | |
| download | wayland-0583ce741ed16315af591e9e4547a1e3d2c26e0b.tar wayland-0583ce741ed16315af591e9e4547a1e3d2c26e0b.tar.gz wayland-0583ce741ed16315af591e9e4547a1e3d2c26e0b.tar.bz2 wayland-0583ce741ed16315af591e9e4547a1e3d2c26e0b.tar.lz wayland-0583ce741ed16315af591e9e4547a1e3d2c26e0b.tar.xz wayland-0583ce741ed16315af591e9e4547a1e3d2c26e0b.tar.zst wayland-0583ce741ed16315af591e9e4547a1e3d2c26e0b.zip | |
scanner: Fail on empty enumerations
Without this patch, the scanner would generate invalid C which wouldn't
compile anyway, so lets be nice and fail earlier and point out where the
error is.
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
Reviewed-by: David Fort <contact@hardening-consulting.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Diffstat (limited to 'src/scanner.c')
| -rw-r--r-- | src/scanner.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/scanner.c b/src/scanner.c index efdc69c..adc9aa3 100644 --- a/src/scanner.c +++ b/src/scanner.c @@ -552,6 +552,10 @@ end_element(void *data, const XML_Char *name) strcmp(name, "event") == 0) { ctx->message = NULL; } else if (strcmp(name, "enum") == 0) { + if (wl_list_empty(&ctx->enumeration->entry_list)) { + fail(&ctx->loc, "enumeration %s was empty", + ctx->enumeration->name); + } ctx->enumeration = NULL; } } |
