trace: Fix 'char **' compilation error in simple backend
authorFam Zheng <famz@redhat.com>
Wed, 26 Oct 2016 03:50:06 +0000 (11:50 +0800)
committerPeter Maydell <peter.maydell@linaro.org>
Thu, 27 Oct 2016 18:24:15 +0000 (19:24 +0100)
Currently, the generated function body will do "strlen(arg)" but the
argument could be 'char **' or 'char * const *'. Avoid that by excluding
such cases in is_string check.

Reported by patchew's "make docker-test-mingw@fedora".

Suggested-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Fam Zheng <famz@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-id: 1477453806-21097-1-git-send-email-famz@redhat.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
scripts/tracetool/backend/simple.py

index 9885e83..85f6102 100644 (file)
@@ -21,7 +21,8 @@ PUBLIC = True
 
 def is_string(arg):
     strtype = ('const char*', 'char*', 'const char *', 'char *')
-    if arg.lstrip().startswith(strtype):
+    arg_strip = arg.lstrip()
+    if arg_strip.startswith(strtype) and arg_strip.count('*') == 1:
         return True
     else:
         return False