fix: use ssize_t for readlinkat return value in p9file.cpp (#40226)
readlinkat() returns ssize_t, not int. On 64-bit systems this could silently truncate the return value for very long symlink targets. Co-authored-by: Ben Hillis <benhill@ntdev.microsoft.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Ben Hillis committed
Apr 17, 2026 at 14:08 UTC
07b0cb4042a2c340fa975bda2126478c2db92feb
1 file changed
+1
-1
src/linux/plan9/p9file.cpp
+1
-1
@@ -850,7 +850,7 @@ Expected<UINT32> File::ReadLink(gsl::span<char> name)
850
{
851
const auto fileName = GetFileName();
852
util::FsUserContext userContext{m_Root->Uid, m_Root->Gid, m_Root->Groups};
853
- int result = readlinkat(m_Root->RootFd, fileName.c_str(), name.data(), name.size());
853
+ ssize_t result = readlinkat(m_Root->RootFd, fileName.c_str(), name.data(), name.size());
854
if (result < 0)
855
{
856
return LxError{-errno};