mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2025-12-27 12:50:09 +01:00
device: fix crash for shared IPv6 method in nm_device_copy_ip6_dns_config()
nm_l3_config_data_get_nameservers() returns a pointer to "struct in6_addr". Not a pointer to pointers. #0 __memmove_avx_unaligned_erms () at ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S:389 #1 0x00007f8060dd9109 in memcpy (__len=<optimized out>, __src=0xfd, __dest=<optimized out>) at /usr/include/bits/string_fortified.h:29 #2 g_array_append_vals (len=1, data=0xfd, farray=0x55dd69332130) at ../glib/garray.c:522 #3 g_array_append_vals (farray=0x55dd69332130, data=0xfd, len=1) at ../glib/garray.c:509 #4 0x000055dd68d2a27d in _garray_inaddr_add (p_arr=<optimized out>, addr_family=<optimized out>, addr=0xfd) at src/core/nm-l3-config-data.c:295 #5 0x000055dd68ef6510 in nm_l3_config_data_add_nameserver (nameserver=<optimized out>, addr_family=10, self=0x55dd6949f900) at src/core/nm-l3-config-data.c:1442 #6 nm_device_copy_ip6_dns_config (self=0x55dd693c4420, from_device=<optimized out>) at src/core/devices/nm-device.c:10468 #7 0x00007f8060f28aba in _g_closure_invoke_va (param_types=0x0, n_params=<optimized out>, args=0x7fffed43d610, instance=0x55dd693c4420, return_value=0x0, closure=0x55dd693cdb10) at ../gobject/gclosure.c:893 #8 g_signal_emit_valist (instance=0x55dd693c4420, signal_id=<optimized out>, detail=0, var_args=var_args@entry=0x7fffed43d610) at ../gobject/gsignal.c:3406 #9 0x00007f8060f28c03 in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at ../gobject/gsignal.c:3553 #10 0x000055dd68efd1fb in _dev_ipac6_start (self=0x55dd693c4420) at src/core/devices/nm-device.c:11348 #11 0x000055dd68efd698 in _dev_ipac6_start_continue (self=0x55dd693c4420) at src/core/devices/nm-device.c:11373 #12 _dev_ipll6_set_llstate (self=0x55dd693c4420, llstate=<optimized out>, lladdr=<optimized out>) at src/core/devices/nm-device.c:10576 #13 0x000055dd68e7915e in _emit_changed_on_idle_cb (user_data=user_data@entry=0x55dd6941ca50) at src/core/nm-l3-ipv6ll.c:221 #14 0x00007f8060e0639b in g_idle_dispatch (source=0x55dd693eea30, callback=0x55dd68e78fd0 <_emit_changed_on_idle_cb>, user_data=0x55dd6941ca50) at ../glib/gmain.c:5897 #15 0x00007f8060e0a05f in g_main_dispatch (context=0x55dd6922c800) at ../glib/gmain.c:3381 #16 g_main_context_dispatch (context=0x55dd6922c800) at ../glib/gmain.c:4099 #17 0x00007f8060e5f2a8 in g_main_context_iterate.constprop.0 (context=0x55dd6922c800, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4175 #18 0x00007f8060e09773 in g_main_loop_run (loop=0x55dd69211010) at ../glib/gmain.c:4373 #19 0x000055dd68d09c7b in main (argc=<optimized out>, argv=<optimized out>) at src/core/main.c:509 Fixes:58287cbcc0('core: rework IP configuration in NetworkManager using layer 3 configuration') (cherry picked from commita2c8a3228b)
This commit is contained in:
parent
44617b25be
commit
e2ef99f938
1 changed files with 5 additions and 5 deletions
|
|
@ -10455,14 +10455,14 @@ nm_device_copy_ip6_dns_config(NMDevice *self, NMDevice *from_device)
|
|||
l3cd_src = priv_src->l3cds[L3_CONFIG_DATA_TYPE_AC_6].d;
|
||||
}
|
||||
if (l3cd_src) {
|
||||
const char *const *strvarr;
|
||||
const struct in6_addr *const *addrs;
|
||||
guint n;
|
||||
guint i;
|
||||
const char *const *strvarr;
|
||||
const struct in6_addr *addrs;
|
||||
guint n;
|
||||
guint i;
|
||||
|
||||
addrs = nm_l3_config_data_get_nameservers(l3cd_src, AF_INET6, &n);
|
||||
for (i = 0; i < n; i++)
|
||||
nm_l3_config_data_add_nameserver(l3cd, AF_INET6, addrs[i]);
|
||||
nm_l3_config_data_add_nameserver(l3cd, AF_INET6, &addrs[i]);
|
||||
|
||||
strvarr = nm_l3_config_data_get_searches(l3cd_src, AF_INET6, &n);
|
||||
for (i = 0; i < n; i++)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue