[PATCH wayland 4/6] scanner: Also fail when an implicitly versioned message is out of order
Jonas Ådahl
jadahl at gmail.com
Thu May 8 14:39:47 PDT 2014
Fail if a message with version implicitly set to 1 (i.e. not specified)
comes after a message with since-version > 1.
Signed-off-by: Jonas Ådahl <jadahl at gmail.com>
---
src/scanner.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/src/scanner.c b/src/scanner.c
index dd1c7b6..28fadb0 100644
--- a/src/scanner.c
+++ b/src/scanner.c
@@ -404,12 +404,14 @@ start_element(void *data, const char *element_name, const char **atts)
if (errno == EINVAL || end == since || *end != '\0')
fail(&ctx->loc,
"invalid integer (%s)\n", since);
- if (version < ctx->interface->since)
- fail(&ctx->loc, "since version not increasing\n");
- ctx->interface->since = version;
+ } else {
+ version = 1;
}
- message->since = ctx->interface->since;
+ if (version < ctx->interface->since)
+ fail(&ctx->loc, "since version not increasing\n");
+ ctx->interface->since = version;
+ message->since = version;
if (strcmp(name, "destroy") == 0 && !message->destructor)
fail(&ctx->loc, "destroy request should be destructor type");
--
1.9.1
More information about the wayland-devel
mailing list