This also changes the type of an int to an ssize_t.
nRead is initialized as an ssize_t because it could
be negative. It is cast to a size_t for comparison
to the size of a vector, but only after we check
that nRead is not negative.
string const encoded = file.toFilesystemEncoding();
#ifdef HAVE_DEF_PATH_MAX
char linkbuffer[PATH_MAX + 1];
- int const nRead = ::readlink(encoded.c_str(),
+ ssize_t const nRead = ::readlink(encoded.c_str(),
linkbuffer, sizeof(linkbuffer) - 1);
if (nRead <= 0)
return false;
if (nRead < 0) {
return false;
}
- if (nRead < buf.size() - 1) {
+ if (static_cast<size_t>(nRead) < buf.size() - 1) {
break;
}
buf.resize(buf.size() * 2);