Commit 1678bc07 authored by Ondrej Zajicek (work)'s avatar Ondrej Zajicek (work)
Browse files

Fix some failed asserts due to add_tail()

When config structures are copied due to template application,
we need to reset list node structure before calling add_tail().

Thanks to Mikael Magnusson for patches.
parent c9ae8165
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -573,6 +573,7 @@ cfg_copy_list(list *dest, list *src, unsigned node_size)
  {
    dn = cfg_alloc(node_size);
    memcpy(dn, sn, node_size);
    memset(dn, 0, sizeof(node));
    add_tail(dest, dn);
  }
}
+1 −0
Original line number Diff line number Diff line
@@ -626,6 +626,7 @@ channel_copy_config(struct channel_config *src, struct proto_config *proto)
  struct channel_config *dst = cfg_alloc(src->channel->config_size);

  memcpy(dst, src, src->channel->config_size);
  memset(&dst->n, 0, sizeof(node));
  add_tail(&proto->channels, &dst->n);
  CALL(src->channel->copy_config, dst, src);

+1 −0
Original line number Diff line number Diff line
@@ -643,6 +643,7 @@ static_copy_config(struct proto_config *dest, struct proto_config *src)
    {
      dnh = cfg_alloc(sizeof(struct static_route));
      memcpy(dnh, snh, sizeof(struct static_route));
      memset(&dnh->n, 0, sizeof(node));

      if (!drt)
	add_tail(&d->routes, &(dnh->n));