From ca75348e2e011b52b3eb13f9e71f449db8c45410 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Grubbstr=C3=B6m=20=28Grubba=29?= <grubba@grubba.org> Date: Thu, 27 Jan 2000 16:58:19 +0100 Subject: [PATCH] Improved error-messages for some common cases in create_process(). Rev: src/signal_handler.c:1.163 --- src/signal_handler.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/signal_handler.c b/src/signal_handler.c index a820340df0..8ab1a2cc07 100644 --- a/src/signal_handler.c +++ b/src/signal_handler.c @@ -25,7 +25,7 @@ #include "main.h" #include <signal.h> -RCSID("$Id: signal_handler.c,v 1.162 2000/01/16 05:20:09 hubbe Exp $"); +RCSID("$Id: signal_handler.c,v 1.163 2000/01/27 15:58:19 grubba Exp $"); #ifdef HAVE_PASSWD_H # include <passwd.h> @@ -2525,6 +2525,9 @@ void f_create_process(INT32 args) buf[1]); break; case PROCE_DUP2: + if (buf[1] == EINVAL) { + error("Process.create_process(): dup2() failed with EINVAL.\n"); + } error("Process.create_process(): dup2() failed. errno:%d\n", buf[1]); break; @@ -2533,6 +2536,11 @@ void f_create_process(INT32 args) buf[2], buf[1]); break; case PROCE_SETGROUPS: + if (buf[1] == EINVAL) { + error("Process.create_process(): setgroups() failed with EINVAL.\n" + "Too many supplementary groups (%d)?\n", + storage.num_wanted_gids); + } error("Process.create_process(): setgroups() failed. errno:%d\n", buf[1]); break; @@ -2545,10 +2553,20 @@ void f_create_process(INT32 args) buf[1]); break; case PROCE_SETUID: + if (buf[1] == EINVAL) { + error("Process.create_process(): Invalid uid: %d.\n", + wanted_uid); + } error("Process.create_process(): setuid(%d) failed. errno:%d\n", buf[2], buf[1]); break; case PROCE_EXEC: + if (buf[1] == ENOENT) { + error("Process.create_process(): Executable file not found.\n"); + } + if (buf[1] == EACCESS) { + error("Process.create_process(): Access denied.\n"); + } error("Process.create_process(): exec() failed. errno:%d\n" "File not found?\n", buf[1]); break; -- GitLab