Cygwin: fix /proc/PID/fd return value in error case
commit 2607639992f6 "Improve error handling in /proc/[pid]/ virtual files." changed the return value of the /proc/PID formatting functions to return -1 instead of 0 in the error case to allow a filesize of 0. The patch neglected to change this behaviour for /proc/PID/fd content. This patch fixes that. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
This commit is contained in:
parent
86817773c5
commit
e118a605e2
@ -389,13 +389,13 @@ format_process_fd (void *data, char *&destbuf)
|
|||||||
if (fd < 0 || e == fdp || (*e != '/' && *e != '\0'))
|
if (fd < 0 || e == fdp || (*e != '/' && *e != '\0'))
|
||||||
{
|
{
|
||||||
set_errno (ENOENT);
|
set_errno (ENOENT);
|
||||||
return 0;
|
return -1;
|
||||||
}
|
}
|
||||||
destbuf = p ? p->fd (fd, fs) : NULL;
|
destbuf = p ? p->fd (fd, fs) : NULL;
|
||||||
if (!destbuf || !*destbuf)
|
if (!destbuf || !*destbuf)
|
||||||
{
|
{
|
||||||
set_errno (ENOENT);
|
set_errno (ENOENT);
|
||||||
return 0;
|
return -1;
|
||||||
}
|
}
|
||||||
if (*e == '\0')
|
if (*e == '\0')
|
||||||
*((process_fd_t *) data)->fd_type = virt_fdsymlink;
|
*((process_fd_t *) data)->fd_type = virt_fdsymlink;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user