summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Garnacho <carlosg@gnome.org>2017-02-12 23:08:12 +0100
committerRico Tzschichholz <ricotz@ubuntu.com>2017-03-01 11:16:17 +0100
commitb2a2551de70a84d196af4b2c8915e8c2d4a448ac (patch)
treed6d10763906e41c4840c5c2a6806383972613cde
parent3b38bf1e9cf9074dea2ce95bbb83e6b963ee3039 (diff)
downloadvala-b2a2551de70a84d196af4b2c8915e8c2d4a448ac.tar.gz
gdbus: Initialize intermediate variables
Those may be left uninitialized after error handling paths are introduced, so invalid data might be attempted to be freed later on. https://bugzilla.gnome.org/show_bug.cgi?id=778540
-rw-r--r--codegen/valagdbusclientmodule.vala4
-rw-r--r--codegen/valagdbusservermodule.vala2
2 files changed, 3 insertions, 3 deletions
diff --git a/codegen/valagdbusclientmodule.vala b/codegen/valagdbusclientmodule.vala
index 7ec23876e..483264d05 100644
--- a/codegen/valagdbusclientmodule.vala
+++ b/codegen/valagdbusclientmodule.vala
@@ -774,7 +774,7 @@ public class Vala.GDBusClientModule : GDBusModule {
foreach (Parameter param in m.get_parameters ()) {
if (param.direction == ParameterDirection.OUT) {
- ccode.add_declaration (get_ccode_name (param.variable_type), new CCodeVariableDeclarator ("_vala_" + param.name));
+ ccode.add_declaration (get_ccode_name (param.variable_type), new CCodeVariableDeclarator.zero ("_vala_%s".printf (param.name), default_value_for_type (param.variable_type, true)));
var array_type = param.variable_type as ArrayType;
@@ -813,7 +813,7 @@ public class Vala.GDBusClientModule : GDBusModule {
var target = new CCodeUnaryExpression (CCodeUnaryOperator.POINTER_INDIRECTION, new CCodeIdentifier ("result"));
receive_dbus_value (m.return_type, new CCodeIdentifier ("_reply_message"), new CCodeIdentifier ("_reply_iter"), target, m);
} else {
- ccode.add_declaration (get_ccode_name (m.return_type), new CCodeVariableDeclarator ("_result"));
+ ccode.add_declaration (get_ccode_name (m.return_type), new CCodeVariableDeclarator.zero ("_result", default_value_for_type (m.return_type, true)));
var array_type = m.return_type as ArrayType;
diff --git a/codegen/valagdbusservermodule.vala b/codegen/valagdbusservermodule.vala
index daf2a629c..ccef8989d 100644
--- a/codegen/valagdbusservermodule.vala
+++ b/codegen/valagdbusservermodule.vala
@@ -237,7 +237,7 @@ public class Vala.GDBusServerModule : GDBusClientModule {
ccode.close ();
}
- ccode.add_declaration ("GDBusMessage*", new CCodeVariableDeclarator ("_reply_message"));
+ ccode.add_declaration ("GDBusMessage*", new CCodeVariableDeclarator.zero ("_reply_message", new CCodeConstant ("NULL")));
var message_expr = new CCodeFunctionCall (new CCodeIdentifier ("g_dbus_method_invocation_get_message"));
message_expr.add_argument (new CCodeIdentifier ("invocation"));