[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen master] tools: libxl: directly initialise saved_* in _libxl_types.c



commit 03f15f8d602efd974d4c3507c7f780cd6efaec40
Author:     Ian Campbell <ian.campbell@xxxxxxxxxx>
AuthorDate: Thu Jan 8 10:57:47 2015 +0000
Commit:     Ian Campbell <ian.campbell@xxxxxxxxxx>
CommitDate: Mon Jan 12 15:14:20 2015 +0000

    tools: libxl: directly initialise saved_* in _libxl_types.c
    
    Coverity complains:
    > /tools/libxl/_libxl_types.c: 9194 in libxl__device_channel_parse_json()
    > 9188             }
    > 9189             x = libxl__json_map_get("connection.socket", o, 
JSON_MAP);
    > 9190             if (x) {
    > 9191                 libxl_device_channel_init_connection(p, 
LIBXL_CHANNEL_CONNECTION_SOCKET);
    > 9192                 {
    > 9193                     const libxl__json_object *saved_path = NULL;
    > >>>     CID 1261758:  Unused value  (UNUSED_VALUE)
    > >>>     Value from "x" is assigned to "saved_path" here, but that
    > >>>     stored value is not used before it is overwritten.
    > 9194                     saved_path = x;
    > 9195                     x = libxl__json_map_get("path", x, JSON_STRING | 
JSON_NULL);
    > 9196                     if (x) {
    > 9197                         rc = libxl__string_parse_json(gc, x, 
&p->u.socket.path);
    > 9198                         if (rc)
    > 9199                             goto out;
    
    Which we can avoid by initialising saved_%s as we define it. Resulting
    in numerous instances of the generated code changing like this:
             if (x) {
                 libxl_channelinfo_init_connection(p, 
LIBXL_CHANNEL_CONNECTION_PTY);
                 {
    -                const libxl__json_object *saved_path = NULL;
    -                saved_path = x;
    +                const libxl__json_object *saved_path = x;
                     x = libxl__json_map_get("path", x, JSON_STRING | 
JSON_NULL);
                     if (x) {
                         rc = libxl__string_parse_json(gc, x, &p->u.pty.path);
    
    CID: 1261758, 1261759 (and I would have expected others, but not
    seeing them for some reason).
    
    Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
    Acked-by: Wei Liu <wei.liu2@xxxxxxxxxx>
---
 tools/libxl/gentypes.py |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)

diff --git a/tools/libxl/gentypes.py b/tools/libxl/gentypes.py
index 3e73821..d9e14fd 100644
--- a/tools/libxl/gentypes.py
+++ b/tools/libxl/gentypes.py
@@ -432,8 +432,7 @@ def libxl_C_type_parse_json(ty, w, v, indent = "    ", 
parent = None, discrimina
         for f in [f for f in ty.fields if not f.const and not f.type.private]:
             saved_var_name = "saved_%s" % f.name
             s += "{\n"
-            s += "    const libxl__json_object *%s = NULL;\n" % saved_var_name
-            s += "    %s = x;\n" % saved_var_name
+            s += "    const libxl__json_object *%s = x;\n" % saved_var_name
             if isinstance(f.type, idl.KeyedUnion):
                 for x in f.type.fields:
                     s += "    x = libxl__json_map_get(\"%s\", %s, 
JSON_MAP);\n" % \
--
generated by git-patchbot for /home/xen/git/xen.git#master

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.