From 0cf455013da475954207feb1ed0a437f4891be03 Mon Sep 17 00:00:00 2001 From: Vitaly Lavrov Date: Thu, 27 Feb 2014 13:01:00 +0400 Subject: [PATCH] fix realloc() error on reboot container MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit The container with "lxc.network.type=phys" halted with error on reboot. Error message: *** glibc detected *** lxc-start: realloc(): invalid pointer: 0x0948eed0 *** We have a sequence: 1) conf->saved_nic = relloc(NULL) on start start.c:container save_phys_nics() 2) free(conf->saved_nics) after stop container conf.c:lxc_rename_phys_nics_on_shutdown() 3) conf->saved_nic = relloc(conf->saved_nics) on restart container start.c:save_phys_nics() -> error relloc() free(conf->saved_nics) in lxc_rename_phys_nics_on_shutdown() unnecessary, it will be called later in lxc_clear_saved_nics(). Signed-off-by: Vitaly Lavrov Acked-by: Stéphane Graber --- src/lxc/conf.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/lxc/conf.c b/src/lxc/conf.c index fc39897fe..b6bc4142b 100644 --- a/src/lxc/conf.c +++ b/src/lxc/conf.c @@ -2565,7 +2565,6 @@ void lxc_rename_phys_nics_on_shutdown(struct lxc_conf *conf) free(s->orig_name); } conf->num_savednics = 0; - free(conf->saved_nics); } static char *default_rootfs_mount = LXCROOTFSMOUNT; @@ -4075,11 +4074,10 @@ static void lxc_clear_saved_nics(struct lxc_conf *conf) { int i; - if (!conf->num_savednics) + if (!conf->saved_nics) return; for (i=0; i < conf->num_savednics; i++) free(conf->saved_nics[i].orig_name); - conf->saved_nics = 0; free(conf->saved_nics); } -- 2.47.2