View | Details | Raw Unified | Return to bug 22212
Collapse All | Expand All

(-)skeyaccess.c (-3 / +9 lines)
Lines 32-37 Link Here
32
#include <arpa/inet.h>
32
#include <arpa/inet.h>
33
#include <stdio.h>
33
#include <stdio.h>
34
#include <grp.h>
34
#include <grp.h>
35
#include <pwd.h>
35
#include <ctype.h>
36
#include <ctype.h>
36
#include <syslog.h>
37
#include <syslog.h>
37
#include <unistd.h>
38
#include <unistd.h>
Lines 152-158 Link Here
152
	int     i;
153
	int     i;
153
154
154
	for (i = 0; login_info.internet_addr[i].s_addr; i++)
155
	for (i = 0; login_info.internet_addr[i].s_addr; i++)
155
	    printf("%s%s", login_info.internet_addr[i].s_addr == -1 ?
156
	    printf("%s%s", login_info.internet_addr[i].s_addr == INADDR_NONE ?
156
		 "(see error log)" : inet_ntoa(login_info.internet_addr[i]),
157
		 "(see error log)" : inet_ntoa(login_info.internet_addr[i]),
157
		   login_info.internet_addr[i + 1].s_addr ? " " : "\n");
158
		   login_info.internet_addr[i + 1].s_addr ? " " : "\n");
158
    }
159
    }
Lines 261-271 Link Here
261
static int match_group(login_info)
262
static int match_group(login_info)
262
struct login_info *login_info;
263
struct login_info *login_info;
263
{
264
{
265
    struct passwd *passwd;
264
    struct group *group;
266
    struct group *group;
265
    char   *tok;
267
    char   *tok;
266
    char  **memp;
268
    char  **memp;
267
269
268
    if ((tok = need_token()) && (group = getgrnam(tok))) {
270
    if ((tok = need_token()) &&
271
	(passwd = getpwnam(login_info->user)) && (group = getgrnam(tok))) {
272
	if (passwd->pw_gid == group->gr_gid)
273
	    return (1);
269
	for (memp = group->gr_mem; *memp; memp++)
274
	for (memp = group->gr_mem; *memp; memp++)
270
	    if (strcmp(login_info->user, *memp) == 0)
275
	    if (strcmp(login_info->user, *memp) == 0)
271
		return (1);
276
		return (1);
Lines 454-459 Link Here
454
459
455
#ifdef TEST
460
#ifdef TEST
456
461
462
int
457
main(argc, argv)
463
main(argc, argv)
458
int     argc;
464
int     argc;
459
char  **argv;
465
char  **argv;
Lines 469-475 Link Here
469
	exit(0);
475
	exit(0);
470
    }
476
    }
471
    if (_PATH_SKEYACCESS[0] != '/')
477
    if (_PATH_SKEYACCESS[0] != '/')
472
	printf("Warning: this program uses control file: %s\n", KEYACCESS);
478
	printf("Warning: this program uses control file: %s\n", _PATH_SKEYACCESS);
473
    openlog("login", LOG_PID, LOG_AUTH);
479
    openlog("login", LOG_PID, LOG_AUTH);
474
480
475
    user = argv[1];
481
    user = argv[1];

Return to bug 22212