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>
static struct interface_config *config_copy_interface(struct config *ctx,
struct interface_config *src)
{
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;
memcpy(dest->hwaddr, src->hwaddr, sizeof(src->hwaddr));
dest->ignore = src->ignore;
talloc_strdup(dest, src->static_config.address);
dest->static_config.gateway =
talloc_strdup(dest, src->static_config.gateway);
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);