[CRIU] 答复: [PATCH] fix segmentation fault caused by uninitialized mutex
Dengguangxing
dengguangxing at huawei.com
Wed Jun 19 13:30:47 MSK 2019
Oops, this patch may cause some unknown errors on aarch64, need some more digging.
Please ignore for now :)
-----邮件原件-----
发件人: Dengguangxing
发送时间: 2019年6月19日 17:13
收件人: 'criu at openvz.org' <criu at openvz.org>
抄送: Liuhua (G) <sdu.liu at huawei.com>
主题: [CRIU] [PATCH] fix segmentation fault caused by uninitialized mutex
Segmentation fault was raised while trying to restore a process with tty. Coredump file says this is caused by uninitialized tty_mutex:
(gdb) where
#0 0x00000000004d7270 in atomic_add_return (i=1, v=0x0) at
include/common/asm/atomic.h:34
#1 0x00000000004d7398 in mutex_lock (m=0x0) at
include/common/lock.h:151
#2 0x00000000004d840c in __pty_open_ptmx_index (index=3, flags=2,
cb=0x4dce50 <open_pty>, arg=0x11, path=0x5562e0 "ptmx") at
criu/tty.c:603
#3 0x00000000004dced8 in pty_create_ptmx_index (dfd=17, index=3,
flags=2) at criu/tty.c:2384
since init_tty_mutex() is reentrantable, just calling it before
mutex_lock()
Signed-off-by: Deng Guangxing <dengguangxing at huawei.com>
---
criu/tty.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/criu/tty.c b/criu/tty.c
index 6fe11530..e9a28897 100644
--- a/criu/tty.c
+++ b/criu/tty.c
@@ -600,6 +600,9 @@ static int __pty_open_ptmx_index(int index, int flags,
memset(fds, 0xff, sizeof(fds));
+ if (init_tty_mutex())
+ return -1;
+
mutex_lock(tty_mutex);
for (i = 0; i < ARRAY_SIZE(fds); i++) {
--
2.17.1
More information about the CRIU
mailing list