From 1c5519574314a8109cd23d8efc821d2813b46d33 Mon Sep 17 00:00:00 2001 From: Alejandro Colomar Date: Sun, 9 May 2021 23:39:00 +0200 Subject: [PATCH] open.2: Fix bug in linkat(2) call example AT_EMPTY_PATH works with empty strings (""), but not with NULL (or at least it's not obvious). The relevant kernel code is the following: linux$ sed -n 189,198p fs/namei.c result->refcnt = 1; /* The empty path is special. */ if (unlikely(!len)) { if (empty) *empty = 1; if (!(flags & LOOKUP_EMPTY)) { putname(result); return ERR_PTR(-ENOENT); } } Reported-by: Walter Harms Cc: Theodore Ts'o Cc: Adam Borowski Signed-off-by: Alejandro Colomar Signed-off-by: Michael Kerrisk --- man2/open.2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/man2/open.2 b/man2/open.2 index 6360636af..bac1ee806 100644 --- a/man2/open.2 +++ b/man2/open.2 @@ -824,7 +824,7 @@ fd = open("/path/to/dir", O_TMPFILE | O_RDWR, /* File I/O on \(aqfd\(aq... */ -linkat(fd, NULL, AT_FDCWD, "/path/for/file", AT_EMPTY_PATH); +linkat(fd, "", AT_FDCWD, "/path/for/file", AT_EMPTY_PATH); /* If the caller doesn\(aqt have the CAP_DAC_READ_SEARCH capability (needed to use AT_EMPTY_PATH with linkat(2)),