diff mbox

lib/pb-config: Properly initialise interface_config

Message ID 20160627045531.12796-1-sam@mendozajonas.com
State Accepted
Headers show

Commit Message

samjonas June 27, 2016, 4:55 a.m. UTC
The addition of the "url" field is not reflected in
config_copy_interface() which leaves the pointer uninitialised, causing
a potential segfault later on.

Copy the field from the source config, and use talloc_zero() for the
interface_config struct to prevent this more generally.

Signed-off-by: Samuel Mendoza-Jonas <sam@mendozajonas.com>
---
 lib/pb-config/pb-config.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
diff mbox

Patch

diff --git a/lib/pb-config/pb-config.c b/lib/pb-config/pb-config.c
index 8200883..92c7e74 100644
--- a/lib/pb-config/pb-config.c
+++ b/lib/pb-config/pb-config.c
@@ -10,7 +10,8 @@ 
 static struct interface_config *config_copy_interface(struct config *ctx,
 		struct interface_config *src)
 {
-	struct interface_config *dest = talloc(ctx, struct interface_config);
+	struct interface_config *dest = talloc_zero(ctx,
+						struct interface_config);
 
 	memcpy(dest->hwaddr, src->hwaddr, sizeof(src->hwaddr));
 	dest->ignore = src->ignore;
@@ -28,6 +29,8 @@  static struct interface_config *config_copy_interface(struct config *ctx,
 			talloc_strdup(dest, src->static_config.address);
 		dest->static_config.gateway =
 			talloc_strdup(dest, src->static_config.gateway);
+		dest->static_config.url =
+			talloc_strdup(dest, src->static_config.url);
 		break;
 	}