[PATCH 5/8] unix-stream-server: add st_dev and st_mode to socket stolen checks
- From
- Jeff Hostetler via GitGitGadget <gitgitgadget@gmail.com>
- Date
- Mar 4, 2021, 20:17 UTC
- Message-ID
- <89100959528c6a3c16622cf86e6920273f5ed2d3.1614889047.git.gitgitgadget@gmail.com>
- In-Reply-To
- <pull.893.git.1614889047.gitgitgadget@gmail.com>
From: Jeff Hostetler <jeffhost@microsoft.com>
When checking to see if our unix domain socket was stolen, also check whether the st.st_dev and st.st_mode fields changed (in addition to the st.st_ino field).
The inode by itself is not unique; it is only unique on a given device.
Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com> --- unix-stream-server.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/unix-stream-server.c b/unix-stream-server.c index f00298ca7ec3..366ece69306b 100644 --- a/unix-stream-server.c +++ b/unix-stream-server.c @@ -120,8 +120,11 @@ int unix_stream_server__was_stolen( if (st_now.st_ino != server_socket->st_socket.st_ino) return 1; + if (st_now.st_dev != server_socket->st_socket.st_dev) + return 1; - /* We might also consider the ctime on some platforms. */ + if (!S_ISSOCK(st_now.st_mode)) + return 1; return 0; }
-- gitgitgadget