On 3/6/21 6:42 AM, René Scharfe wrote:
Am 04.03.21 um 21:17 schrieb Jeff Hostetler via GitGitGadget:
From: Jeff Hostetler <jeffhost@xxxxxxxxxxxxx>
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@xxxxxxxxxxxxx>
---
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. */
Why remove that comment? (This change is not mentioned in the commit
message.)
I added it as a TODO to myself thinking that it might give us
additional assurances on some platforms while I was originally
getting things working. In hindsight (and now that we have the
lockfile helping us), I didn't think it was actually needed, so
I removed it.
I didn't think it warranted a mention in the commit message.
+ if (!S_ISSOCK(st_now.st_mode))
+ return 1;
return 0;
}