/[pkgs]/rpms/rsh/devel/netkit-rsh-0.17-arg_max.patch
ViewVC logotype

Contents of /rpms/rsh/devel/netkit-rsh-0.17-arg_max.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (hide annotations) (download) (as text)
Mon Apr 14 11:48:26 2008 UTC (19 months, 1 week ago) by atkac
Branch: MAIN
CVS Tags: rsh-0_17-49_fc9, F-9-split
File MIME type: text/x-patch
- use sysconf for ARG_MAX value (#440867)
1 atkac 1.1 diff -up netkit-rsh-0.17/rexecd/rexecd.c.arg_max netkit-rsh-0.17/rexecd/rexecd.c
2     --- netkit-rsh-0.17/rexecd/rexecd.c.arg_max 2008-04-14 13:19:29.000000000 +0200
3     +++ netkit-rsh-0.17/rexecd/rexecd.c 2008-04-14 13:33:35.000000000 +0200
4     @@ -235,7 +235,8 @@ static struct pam_conv PAM_conversation
5     static void
6     doit(struct sockaddr_in *fromp)
7     {
8     - char cmdbuf[ARG_MAX+1];
9     + char *cmdbuf;
10     + long cmdbuflen;
11     char user[17], pass[17];
12     struct passwd *pwd;
13     int s = -1;
14     @@ -254,6 +255,18 @@ doit(struct sockaddr_in *fromp)
15     #endif
16     #endif /* USE_PAM */
17    
18     + cmdbuflen = sysconf (_SC_ARG_MAX);
19     + if (!(cmdbuflen > 0)) {
20     + syslog (LOG_ERR, "sysconf (_SC_ARG_MAX) failed");
21     + fatal ("sysconf (_SC_ARG_MAX) failed\n");
22     + }
23     +
24     + cmdbuf = malloc (++cmdbuflen);
25     + if (cmdbuf == NULL) {
26     + syslog (LOG_ERR, "Could not allocate space for cmdbuf");
27     + fatal ("Could not allocate space for cmdbuf\n");
28     + }
29     +
30     signal(SIGINT, SIG_DFL);
31     signal(SIGQUIT, SIG_DFL);
32     signal(SIGTERM, SIG_DFL);
33     @@ -303,7 +316,7 @@ doit(struct sockaddr_in *fromp)
34    
35     getstr(user, sizeof(user), "username too long\n");
36     getstr(pass, sizeof(pass), "password too long\n");
37     - getstr(cmdbuf, sizeof(cmdbuf), "command too long\n");
38     + getstr(cmdbuf, cmdbuflen, "command too long\n");
39     #ifdef USE_PAM
40     #define PAM_BAIL if (pam_error != PAM_SUCCESS) { \
41     pam_end(pamh, pam_error); exit(1); \
42     diff -up netkit-rsh-0.17/rshd/rshd.c.arg_max netkit-rsh-0.17/rshd/rshd.c
43     --- netkit-rsh-0.17/rshd/rshd.c.arg_max 2008-04-14 13:33:58.000000000 +0200
44     +++ netkit-rsh-0.17/rshd/rshd.c 2008-04-14 13:35:17.000000000 +0200
45     @@ -402,7 +402,8 @@ static int log_audit(const char *usernam
46     static void
47     doit(struct sockaddr_storage *fromp, socklen_t fromlen)
48     {
49     - char cmdbuf[ARG_MAX+1];
50     + char *cmdbuf;
51     + long cmdbuflen;
52     const char *theshell, *shellname;
53     char locuser[16], remuser[16];
54     struct passwd *pwd;
55     @@ -415,6 +416,18 @@ doit(struct sockaddr_storage *fromp, soc
56     int i;
57     #endif
58    
59     + cmdbuflen = sysconf (_SC_ARG_MAX);
60     + if (!(cmdbuflen > 0)) {
61     + syslog (LOG_ERR, "sysconf (_SC_ARG_MAX) failed");
62     + exit (1);
63     + }
64     +
65     + cmdbuf = malloc (++cmdbuflen);
66     + if (cmdbuf == NULL) {
67     + syslog (LOG_ERR, "Could not allocate space for cmdbuf");
68     + exit (1);
69     + }
70     +
71     signal(SIGINT, SIG_DFL);
72     signal(SIGQUIT, SIG_DFL);
73     signal(SIGTERM, SIG_DFL);

admin@fedoraproject.org
ViewVC Help
Powered by ViewVC 1.1.2