From a13a5288214c6dbb25bd8da04057f8ff17750ec1 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Sun, 16 Mar 2014 19:45:34 +0100 Subject: Fix crash on accessing vcs without a console being active * console-client/current-vcs.c (vcs_readlink): Return error as negative values. (vcs_read): Convert errors returned by vcs_readlink before returning them. --- console-client/current-vcs.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'console-client') diff --git a/console-client/current-vcs.c b/console-client/current-vcs.c index e88e549d..f1112f98 100644 --- a/console-client/current-vcs.c +++ b/console-client/current-vcs.c @@ -57,7 +57,7 @@ vcs_readlink (struct iouser *user, struct node *np, char *buf) ret = sprintf (buf, "%s/%d", cons_file, cur); if (ret < 0) - ret = errno; + ret = -errno; } return ret; } @@ -75,14 +75,14 @@ vcs_read (struct protid *user, char **data, { size = vcs_readlink (user->user, NULL, NULL); if (size < 0) - return size; + return -size; buf = alloca (size); err = vcs_readlink (user->user, NULL, buf); if (err < 0) - return err; + return -err; if (offset + amount > size) amount = size - offset; -- cgit v1.2.3