Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 225341
Collapse All | Expand All

(-)./rexecd/rexecd.c (-2 / +15 lines)
Lines 223-229 Link Here
223
static void
223
static void
224
doit(struct sockaddr_in *fromp)
224
doit(struct sockaddr_in *fromp)
225
{
225
{
226
	char cmdbuf[ARG_MAX+1];
226
	char *cmdbuf;
227
	long cmdbuflen;
227
	char user[16], pass[16];
228
	char user[16], pass[16];
228
	struct passwd *pwd;
229
	struct passwd *pwd;
229
	int s = -1;
230
	int s = -1;
Lines 242-247 Link Here
242
#endif
243
#endif
243
#endif /* USE_PAM */
244
#endif /* USE_PAM */
244
245
246
        cmdbuflen = sysconf (_SC_ARG_MAX);
247
        if (!(cmdbuflen > 0)) {
248
                syslog (LOG_ERR, "sysconf (_SC_ARG_MAX) failed");
249
                fatal ("sysconf (_SC_ARG_MAX) failed\n");
250
        }
251
 
252
        cmdbuf = malloc (++cmdbuflen);
253
        if (cmdbuf == NULL) {
254
                syslog (LOG_ERR, "Could not allocate space for cmdbuf");
255
                fatal ("Could not allocate space for cmdbuf\n");
256
        }
257
245
	signal(SIGINT, SIG_DFL);
258
	signal(SIGINT, SIG_DFL);
246
	signal(SIGQUIT, SIG_DFL);
259
	signal(SIGQUIT, SIG_DFL);
247
	signal(SIGTERM, SIG_DFL);
260
	signal(SIGTERM, SIG_DFL);
Lines 291-297 Link Here
291
304
292
	getstr(user, sizeof(user), "username too long\n");
305
	getstr(user, sizeof(user), "username too long\n");
293
	getstr(pass, sizeof(pass), "password too long\n");
306
	getstr(pass, sizeof(pass), "password too long\n");
294
	getstr(cmdbuf, sizeof(cmdbuf), "command too long\n");
307
	getstr(cmdbuf, cmdbuflen, "command too long\n");
295
#ifdef USE_PAM
308
#ifdef USE_PAM
296
       #define PAM_BAIL if (pam_error != PAM_SUCCESS) { \
309
       #define PAM_BAIL if (pam_error != PAM_SUCCESS) { \
297
	       pam_end(pamh, pam_error); exit(1); \
310
	       pam_end(pamh, pam_error); exit(1); \
(-)./rshd/rshd.c (-1 / +14 lines)
Lines 337-343 Link Here
337
static void
337
static void
338
doit(struct sockaddr_in *fromp)
338
doit(struct sockaddr_in *fromp)
339
{
339
{
340
	char cmdbuf[ARG_MAX+1];
340
	char *cmdbuf;
341
	long cmdbuflen;
341
	const char *theshell, *shellname;
342
	const char *theshell, *shellname;
342
	char locuser[16], remuser[16];
343
	char locuser[16], remuser[16];
343
	struct passwd *pwd;
344
	struct passwd *pwd;
Lines 346-351 Link Here
346
	u_short port;
347
	u_short port;
347
	int pv[2], pid, ifd;
348
	int pv[2], pid, ifd;
348
349
350
	cmdbuflen = sysconf (_SC_ARG_MAX);
351
	if (!(cmdbuflen > 0)) {
352
		syslog (LOG_ERR, "sysconf (_SC_ARG_MAX) failed");
353
		exit (1);
354
	}
355
356
	cmdbuf = malloc (++cmdbuflen);
357
	if (cmdbuf == NULL) {
358
		syslog (LOG_ERR, "Could not allocate space for cmdbuf");
359
		exit (1);
360
	}
361
349
	signal(SIGINT, SIG_DFL);
362
	signal(SIGINT, SIG_DFL);
350
	signal(SIGQUIT, SIG_DFL);
363
	signal(SIGQUIT, SIG_DFL);
351
	signal(SIGTERM, SIG_DFL);
364
	signal(SIGTERM, SIG_DFL);

Return to bug 225341