[PATCH] lib/pb-config: Properly initialise interface_config

Samuel Mendoza-Jonas sam at mendozajonas.com
Mon Jun 27 14:55:31 AEST 2016


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 at mendozajonas.com>
---
 lib/pb-config/pb-config.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

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;
 	}
 
-- 
2.9.0



More information about the Petitboot mailing list