diff -r -C2 --new-file NetKit-B-0.07/ChangeLog NetKit-B-0.07A/ChangeLog
*** NetKit-B-0.07/ChangeLog Mon Jul 22 05:54:50 1996
--- NetKit-B-0.07A/ChangeLog Fri Jul 26 00:44:35 1996
***************
*** 1,3 ****
! New in 0.07: (16-Jul-1996)
- removed portmap; use Wietse Venema's portmap.
- removed rdist; use rdist 6.x distributed separately.
--- 1,10 ----
! New in 0.07A: (25-Jul-1996)
! - fixed the top-level makefile.
! - removed old versions of rpcgen and slattach.
! - fixed a bug in telnet where the escape character was being ignored.
! - fixed a bug in telnetd; now uses the correct names for the last ptys
! (that is, ptya0-ptyef, not ptyA0-ptyEf.)
!
! New in 0.07: (23-Jul-1996)
- removed portmap; use Wietse Venema's portmap.
- removed rdist; use rdist 6.x distributed separately.
diff -r -C2 --new-file NetKit-B-0.07/MCONFIG NetKit-B-0.07A/MCONFIG
*** NetKit-B-0.07/MCONFIG Mon Jul 22 05:46:24 1996
--- NetKit-B-0.07A/MCONFIG Fri Jul 26 00:30:37 1996
***************
*** 46,49 ****
--- 46,55 ----
#
# On the PowerPC, you probably want to add -fsigned-char to CFLAGS.
+ #
+ # Note: if talk breaks because it can't find "unctrl.h", your ncurses
+ # package is not installed correctly. Either link /usr/include/unctrl.h
+ # to /usr/include/ncurses/unctrl.h, fix /usr/include/ncurses/curses.h to
+ # include <ncurses/unctrl.h> instead of <unctrl.h>, or hack around the
+ # problem by putting -I/usr/include/ncurses in the CFLAGS.
CC=gcc
diff -r -C2 --new-file NetKit-B-0.07/Makefile NetKit-B-0.07A/Makefile
*** NetKit-B-0.07/Makefile Sun Jul 21 04:25:54 1996
--- NetKit-B-0.07A/Makefile Fri Jul 26 01:32:38 1996
***************
*** 14,19 ****
# routed (deprecated due to being totally broken beyond hope; use gated)
# rup (doesn't compile...)
- # rpcgen (obsolete)
- # slattach (obsolete)
#
# These programs are not supplied at all any more:
--- 14,17 ----
***************
*** 23,33 ****
! all:
! for i in $(SUB); do make -C $$i; done
! install:
! for i in $(SUB); do make -C $$i install; done
! clean:
! for i in $(SUB); do make -C $$i clean; done
--- 21,34 ----
! %.build:
! $(MAKE)-C$(patsubst %.build, %, $@)
! %.install:
! $(MAKE)-C$(patsubst %.install, %, $@) install
! %.clean:
! $(MAKE)-C$(patsubst %.clean, %, $@) clean
+ all: $(patsubst %, %.build, $(SUB))
+ install: $(patsubst %, %.install, $(SUB))
+ clean: $(patsubst %, %.clean, $(SUB))
diff -r -C2 --new-file NetKit-B-0.07/README NetKit-B-0.07A/README
*** NetKit-B-0.07/README Mon Jul 22 17:12:47 1996
--- NetKit-B-0.07A/README Fri Jul 26 00:31:41 1996
***************
*** 1,6 ****
! This is NetKit-B-0.07.
This is probably the last or next to last NetKit-B. NetKit-A has
already officially ceased to exist.
In the future the components of the NetKit packages will be available
--- 1,8 ----
! This is NetKit-B-0.07A.
This is probably the last or next to last NetKit-B. NetKit-A has
already officially ceased to exist.
+
+ NetKit-B-0.07A fixes some stupid bugs in NetKit-B-0.07.
In the future the components of the NetKit packages will be available
diff -r -C2 --new-file NetKit-B-0.07/rexecd/rexecd.c NetKit-B-0.07A/rexecd/rexecd.c
*** NetKit-B-0.07/rexecd/rexecd.c Tue Jul 23 20:15:54 1996
--- NetKit-B-0.07A/rexecd/rexecd.c Fri Jul 26 00:51:50 1996
***************
*** 40,44 ****
*/
char rcsid[] =
! "$Id: rexecd.c,v 1.9 1996/07/24 00:15:51 dholland Exp $";
--- 40,44 ----
*/
char rcsid[] =
! "$Id: rexecd.c,v 1.10 1996/07/26 04:51:44 dholland Exp $";
***************
*** 310,318 ****
}
}
- #endif /* !USE_PAM */
fclose(fp);
}
else syslog(LOG_ERR, "cannot open /etc/ftpusers");
#endif
/* Log successful attempts. */
--- 310,318 ----
}
}
fclose(fp);
}
else syslog(LOG_ERR, "cannot open /etc/ftpusers");
#endif
+ #endif /* !USE_PAM */
/* Log successful attempts. */
diff -r -C2 --new-file NetKit-B-0.07/rlogind/Makefile NetKit-B-0.07A/rlogind/Makefile
*** NetKit-B-0.07/rlogind/Makefile Tue Jul 23 04:19:13 1996
--- NetKit-B-0.07A/rlogind/Makefile Fri Jul 26 00:53:04 1996
***************
*** 8,13 ****
ifeq ($(USE_PAM),1)
CFLAGS += -DUSE_PAM
! LDFLAGS += -ldl -lpam
! OBJS += pamconv.o
endif
--- 8,12 ----
ifeq ($(USE_PAM),1)
CFLAGS += -DUSE_PAM
! LIBS += -ldl -lpam -lpam_misc
endif
diff -r -C2 --new-file NetKit-B-0.07/rlogind/pamconv.c NetKit-B-0.07A/rlogind/pamconv.c
*** NetKit-B-0.07/rlogind/pamconv.c Tue Jul 23 03:42:50 1996
--- NetKit-B-0.07A/rlogind/pamconv.c Wed Dec 31 19:00:00 1969
***************
*** 1,157 ****
- /*
- * Modifications for Linux-PAM: Al Longyear <
[email protected]>
- * General code clean up: Andrew Morgan <
[email protected]>
- * Re-built with #ifdef USE_PAM: Michael K. Johnson <
[email protected]>,
- * Red Hat Software
- *
- * The Linux-PAM mailing list (25JUN96) <
[email protected]>
- */
-
- #ifdef USE_PAM
- /* conversation function and static variables for communication */
-
- /*
- * A generic conversation function for text based applications
- *
- * Written by Andrew Morgan <
[email protected]>
- *
- */
-
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <unistd.h>
-
- #include <security/pam_appl.h>
-
- #define INPUTSIZE PAM_MAX_MSG_SIZE
-
- #define CONV_ECHO_ON 1
-
- #define CONV_ECHO_OFF 0
-
- #define _pam_overwrite(x) \
- { \
- register char *xx; \
- if ((xx=x)) \
- while (*xx) \
- *xx++ = '\0'; \
- }
-
- static char *read_string(int echo, const char *remark)
- {
- char buffer[INPUTSIZE];
- char *text,*tmp;
-
- if (!echo) {
- tmp = getpass(remark);
- text = strdup(tmp); /* get some space for this text */
- _pam_overwrite(tmp); /* overwrite the old record of
- * the password */
- } else {
- fprintf(stderr,"%s",remark);
- text = fgets(buffer,INPUTSIZE-1,stdin);
- if (text) {
- tmp = buffer + strlen(buffer);
- while (tmp > buffer && (*--tmp == '\n'))
- *tmp = '\0';
- text = strdup(buffer); /* get some space for this text */
- }
- }
-
- return (text);
- }
-
- #define REPLY_CHUNK 5
-
- static void drop_reply(struct pam_response *reply, int replies)
- {
- int i;
-
- for (i=0; i<replies; ++i) {
- _pam_overwrite(reply[i].resp); /* might be a password */
- free(reply[i].resp);
- }
- if (reply)
- free(reply);
- }
-
- int misc_conv(int num_msg, const struct pam_message **msgm,
- struct pam_response **response, void *appdata_ptr)
- {
- int count=0,replies=0,space=0;
- struct pam_response *reply=NULL;
- char *string=NULL;
-
- for (count=0; count < num_msg; ++count) {
- switch (msgm[count]->msg_style) {
- case PAM_PROMPT_ECHO_OFF:
- string = read_string(CONV_ECHO_OFF,msgm[count]->msg);
- if (string == NULL) {
- drop_reply(reply,replies);
- return (PAM_CONV_ERR);
- }
- break;
- case PAM_PROMPT_ECHO_ON:
- string = read_string(CONV_ECHO_ON,msgm[count]->msg);
- if (string == NULL) {
- drop_reply(reply,replies);
- return (PAM_CONV_ERR);
- }
- break;
- case PAM_ERROR_MSG:
- fprintf(stderr,"%s\n",msgm[count]->msg);
- break;
- case PAM_TEXT_INFO:
- fprintf(stderr,"%s\n",msgm[count]->msg);
- break;
- default:
- fprintf(stderr, "erroneous conversation (%d)\n"
- ,msgm[count]->msg_style);
- drop_reply(reply,replies);
- return (PAM_CONV_ERR);
- }
-
- if (string) { /* must add to reply array */
- struct pam_response *ptmp;
-
- /* do we need a larger reply array ? */
-
- if (space <= replies) {
- space += REPLY_CHUNK;
- ptmp = (struct pam_response *)
- realloc(reply, space*sizeof(struct pam_response));
- if (ptmp == NULL) {
- drop_reply(reply,replies);
- return PAM_CONV_ERR; /* ran out of memory */
- }
- reply = ptmp; /* enlarged array*/
- }
-
- /* add string to list of responses */
-
- reply[replies].resp_retcode = 0;
- reply[replies++].resp = string;
- string = NULL;
- }
- }
-
- /* do we need to bother with a response? */
- if (reply) {
-
- /* note, this pam_response structure (array) will be
- * free()'d by the module */
-
- *response = reply;
- }
-
- return PAM_SUCCESS;
- }
-
- struct pam_conv conv = {
- misc_conv,
- NULL
- };
-
- #endif /* USE_PAM */
-
--- 0 ----
diff -r -C2 --new-file NetKit-B-0.07/rlogind/rlogind.c NetKit-B-0.07A/rlogind/rlogind.c
*** NetKit-B-0.07/rlogind/rlogind.c Tue Jul 23 04:19:00 1996
--- NetKit-B-0.07A/rlogind/rlogind.c Fri Jul 26 01:08:21 1996
***************
*** 50,54 ****
*/
char rcsid[] =
! "$Id: rlogind.c,v 1.11 1996/07/23 08:18:58 dholland Exp $";
/*
--- 50,54 ----
*/
char rcsid[] =
! "$Id: rlogind.c,v 1.13 1996/07/26 05:08:18 dholland Exp $";
/*
***************
*** 75,78 ****
--- 75,79 ----
#include <pwd.h>
+ #include <grp.h>
#include <syslog.h>
#include <errno.h>
***************
*** 83,88 ****
#ifdef USE_PAM
! #include <grp.h>
#include <security/pam_appl.h>
#endif
--- 84,90 ----
#ifdef USE_PAM
! #include <sys/types.h>
#include <security/pam_appl.h>
+ #include <security/pam_misc.h>
#endif
***************
*** 134,137 ****
--- 136,140 ----
int on = 1, fromlen;
struct sockaddr_in from;
+ _check_rhosts_file = 1; /* default */
openlog("rlogind", LOG_PID | LOG_CONS, LOG_AUTH);
***************
*** 311,321 ****
}
#ifdef USE_PAM
! pam_end(pamh, PAM_AUTH_ERR);
! /* I gather that PAM precludes dropping to straight login or something. (?) */
! #else
execl(_PATH_LOGIN, "login", "-p",
"-h", hp->h_name, lusername, 0);
/* should not return... */
- #endif
}
fatal(STDERR_FILENO, _PATH_LOGIN, 1);
--- 314,322 ----
}
#ifdef USE_PAM
! pam_end(pamh, PAM_SUCCESS);
! #endif
execl(_PATH_LOGIN, "login", "-p",
"-h", hp->h_name, lusername, 0);
/* should not return... */
}
fatal(STDERR_FILENO, _PATH_LOGIN, 1);
***************
*** 508,512 ****
logwtmp(p, "", "");
#ifdef USE_PAM
- pam_close_session(pamh, 0);
pam_end (pamh, PAM_SUCCESS);
#endif
--- 509,512 ----
***************
*** 554,558 ****
#ifdef USE_PAM
- pam_close_session(pamh, 0);
pam_end (pamh, PAM_SUCCESS);
#endif
--- 554,557 ----
***************
*** 566,570 ****
#ifdef USE_PAM
char c;
! extern struct pam_conv conv;
int retval;
#endif /* USE_PAM */
--- 565,572 ----
#ifdef USE_PAM
char c;
! static struct pam_conv conv = {
! misc_conv,
! NULL
! };
int retval;
#endif /* USE_PAM */
***************
*** 600,608 ****
if (retval == PAM_SUCCESS)
break;
! if (retval == PAM_AUTHTOKEN_REQD)
retval = pam_chauthtok (pamh,PAM_CHANGE_EXPIRED_AUTHTOK);
! } while (retval == PAM_SUCCESS);
! if (retval == PAM_SUCCESS) {
if (setgid(pwd->pw_gid) != 0) {
fprintf(stderr, "cannot assume gid\n");
--- 602,621 ----
if (retval == PAM_SUCCESS)
break;
! if (retval == PAM_AUTHTOKEN_REQD) {
retval = pam_chauthtok (pamh,PAM_CHANGE_EXPIRED_AUTHTOK);
! if(retval == PAM_SUCCESS)
! /* Try authentication again if passwd change
! succeeded. Don't try again if it didn't;
! sysadmin might not want passwords changed
! over the next, and might have set password
! to pam_deny.so to disable it... */
! continue;
! }
! } while (0); /* We have the while(0) here because it is either using
! that and the breaks, or goto's */
! /* eww. -dah */
!
! if (retval == PAM_SUCCESS) {
if (setgid(pwd->pw_gid) != 0) {
fprintf(stderr, "cannot assume gid\n");
***************
*** 616,630 ****
retval = pam_setcred(pamh, PAM_CRED_ESTABLISH);
! }
! if (retval == PAM_SUCCESS)
! retval = pam_open_session(pamh,0);
! return (retval ^ PAM_SUCCESS);
! #else
if (pwd->pw_uid == 0)
return(-1);
return(ruserok(host, 0, rusername, lusername));
! #endif /* USE_PAM */
}
--- 629,647 ----
retval = pam_setcred(pamh, PAM_CRED_ESTABLISH);
! }
! if (retval != PAM_SUCCESS) {
! syslog(LOG_ERR,"PAM authentication failed for in.rlogind");
! fatal(STDERR_FILENO, "login failed", 0);
! /* no return */
! }
! return 0;
!
! #else /* !USE_PAM */
if (pwd->pw_uid == 0)
return(-1);
return(ruserok(host, 0, rusername, lusername));
! #endif /* PAM */
}
diff -r -C2 --new-file NetKit-B-0.07/rpc.rusersd/Makefile NetKit-B-0.07A/rpc.rusersd/Makefile
*** NetKit-B-0.07/rpc.rusersd/Makefile Sat Jul 20 16:52:53 1996
--- NetKit-B-0.07A/rpc.rusersd/Makefile Fri Jul 26 01:31:15 1996
***************
*** 8,11 ****
--- 8,13 ----
# .endif
+ RPCGEN=../rpcgen.new/rpcgen
+
# Doesn't compile cleanly with -Wall
CFLAGS = -O2 -D__USE_BSD_SIGNAL -I../include
***************
*** 17,32 ****
rusers.h: ../include/rpcsvc/rusers.x
! ../rpcgen.new/rpcgen -h -o rusers.h ../include/rpcsvc/rusers.x
rusers_xdr.c: ../include/rpcsvc/rusers.x
! ../rpcgen.new/rpcgen -c -C -o rusers_xdr.c ../include/rpcsvc/rusers.x
rnusers_xdr.o: rnusers_xdr.c rnusers.h
rnusers.h: ../include/rpcsvc/rnusers.x
! ../rpcgen.new/rpcgen -h -o rnusers.h ../include/rpcsvc/rnusers.x
rnusers_xdr.c: ../include/rpcsvc/rnusers.x
! ../rpcgen.new/rpcgen -c -C -o rnusers_xdr.c ../include/rpcsvc/rnusers.x
install: rusersd
--- 19,34 ----
rusers.h: ../include/rpcsvc/rusers.x
! $(RPCGEN) -h -o rusers.h ../include/rpcsvc/rusers.x
rusers_xdr.c: ../include/rpcsvc/rusers.x
! $(RPCGEN) -c -C -o rusers_xdr.c ../include/rpcsvc/rusers.x
rnusers_xdr.o: rnusers_xdr.c rnusers.h
rnusers.h: ../include/rpcsvc/rnusers.x
! $(RPCGEN) -h -o rnusers.h ../include/rpcsvc/rnusers.x
rnusers_xdr.c: ../include/rpcsvc/rnusers.x
! $(RPCGEN) -c -C -o rnusers_xdr.c ../include/rpcsvc/rnusers.x
install: rusersd
diff -r -C2 --new-file NetKit-B-0.07/rshd/Makefile NetKit-B-0.07A/rshd/Makefile
*** NetKit-B-0.07/rshd/Makefile Mon Jul 22 05:43:58 1996
--- NetKit-B-0.07A/rshd/Makefile Fri Jul 26 01:03:51 1996
***************
*** 8,13 ****
ifeq ($(USE_PAM),1)
CFLAGS += -DUSE_PAM
! LDFLAGS += -ldl -lpam
! OBJS += pamconv.o
endif
--- 8,12 ----
ifeq ($(USE_PAM),1)
CFLAGS += -DUSE_PAM
! LIBS += -ldl -lpam -lpam_misc
endif
diff -r -C2 --new-file NetKit-B-0.07/rshd/pamconv.c NetKit-B-0.07A/rshd/pamconv.c
*** NetKit-B-0.07/rshd/pamconv.c Tue Jul 23 03:42:50 1996
--- NetKit-B-0.07A/rshd/pamconv.c Wed Dec 31 19:00:00 1969
***************
*** 1,157 ****
- /*
- * Modifications for Linux-PAM: Al Longyear <
[email protected]>
- * General code clean up: Andrew Morgan <
[email protected]>
- * Re-built with #ifdef USE_PAM: Michael K. Johnson <
[email protected]>,
- * Red Hat Software
- *
- * The Linux-PAM mailing list (25JUN96) <
[email protected]>
- */
-
- #ifdef USE_PAM
- /* conversation function and static variables for communication */
-
- /*
- * A generic conversation function for text based applications
- *
- * Written by Andrew Morgan <
[email protected]>
- *
- */
-
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <unistd.h>
-
- #include <security/pam_appl.h>
-
- #define INPUTSIZE PAM_MAX_MSG_SIZE
-
- #define CONV_ECHO_ON 1
-
- #define CONV_ECHO_OFF 0
-
- #define _pam_overwrite(x) \
- { \
- register char *xx; \
- if ((xx=x)) \
- while (*xx) \
- *xx++ = '\0'; \
- }
-
- static char *read_string(int echo, const char *remark)
- {
- char buffer[INPUTSIZE];
- char *text,*tmp;
-
- if (!echo) {
- tmp = getpass(remark);
- text = strdup(tmp); /* get some space for this text */
- _pam_overwrite(tmp); /* overwrite the old record of
- * the password */
- } else {
- fprintf(stderr,"%s",remark);
- text = fgets(buffer,INPUTSIZE-1,stdin);
- if (text) {
- tmp = buffer + strlen(buffer);
- while (tmp > buffer && (*--tmp == '\n'))
- *tmp = '\0';
- text = strdup(buffer); /* get some space for this text */
- }
- }
-
- return (text);
- }
-
- #define REPLY_CHUNK 5
-
- static void drop_reply(struct pam_response *reply, int replies)
- {
- int i;
-
- for (i=0; i<replies; ++i) {
- _pam_overwrite(reply[i].resp); /* might be a password */
- free(reply[i].resp);
- }
- if (reply)
- free(reply);
- }
-
- int misc_conv(int num_msg, const struct pam_message **msgm,
- struct pam_response **response, void *appdata_ptr)
- {
- int count=0,replies=0,space=0;
- struct pam_response *reply=NULL;
- char *string=NULL;
-
- for (count=0; count < num_msg; ++count) {
- switch (msgm[count]->msg_style) {
- case PAM_PROMPT_ECHO_OFF:
- string = read_string(CONV_ECHO_OFF,msgm[count]->msg);
- if (string == NULL) {
- drop_reply(reply,replies);
- return (PAM_CONV_ERR);
- }
- break;
- case PAM_PROMPT_ECHO_ON:
- string = read_string(CONV_ECHO_ON,msgm[count]->msg);
- if (string == NULL) {
- drop_reply(reply,replies);
- return (PAM_CONV_ERR);
- }
- break;
- case PAM_ERROR_MSG:
- fprintf(stderr,"%s\n",msgm[count]->msg);
- break;
- case PAM_TEXT_INFO:
- fprintf(stderr,"%s\n",msgm[count]->msg);
- break;
- default:
- fprintf(stderr, "erroneous conversation (%d)\n"
- ,msgm[count]->msg_style);
- drop_reply(reply,replies);
- return (PAM_CONV_ERR);
- }
-
- if (string) { /* must add to reply array */
- struct pam_response *ptmp;
-
- /* do we need a larger reply array ? */
-
- if (space <= replies) {
- space += REPLY_CHUNK;
- ptmp = (struct pam_response *)
- realloc(reply, space*sizeof(struct pam_response));
- if (ptmp == NULL) {
- drop_reply(reply,replies);
- return PAM_CONV_ERR; /* ran out of memory */
- }
- reply = ptmp; /* enlarged array*/
- }
-
- /* add string to list of responses */
-
- reply[replies].resp_retcode = 0;
- reply[replies++].resp = string;
- string = NULL;
- }
- }
-
- /* do we need to bother with a response? */
- if (reply) {
-
- /* note, this pam_response structure (array) will be
- * free()'d by the module */
-
- *response = reply;
- }
-
- return PAM_SUCCESS;
- }
-
- struct pam_conv conv = {
- misc_conv,
- NULL
- };
-
- #endif /* USE_PAM */
-
--- 0 ----
diff -r -C2 --new-file NetKit-B-0.07/rshd/rshd.c NetKit-B-0.07A/rshd/rshd.c
*** NetKit-B-0.07/rshd/rshd.c Tue Jul 23 20:16:41 1996
--- NetKit-B-0.07A/rshd/rshd.c Fri Jul 26 01:05:44 1996
***************
*** 43,47 ****
* From: @(#)rshd.c 5.38 (Berkeley) 3/2/91
*/
! char rcsid[] = "$Id: rshd.c,v 1.7 1996/07/24 00:16:36 dholland Exp $";
/*
--- 43,47 ----
* From: @(#)rshd.c 5.38 (Berkeley) 3/2/91
*/
! char rcsid[] = "$Id: rshd.c,v 1.8 1996/07/26 05:05:41 dholland Exp $";
/*
***************
*** 79,82 ****
--- 79,83 ----
#ifdef USE_PAM
#include <security/pam_appl.h>
+ #include <security/pam_misc.h>
static pam_handle_t *pamh;
static int retcode;
***************
*** 104,108 ****
int ch, on = 1, fromlen;
struct sockaddr_in from;
!
openlog("rshd", LOG_PID | LOG_ODELAY, LOG_DAEMON);
--- 105,109 ----
int ch, on = 1, fromlen;
struct sockaddr_in from;
! _check_rhosts_file=1;
openlog("rshd", LOG_PID | LOG_ODELAY, LOG_DAEMON);
***************
*** 201,205 ****
char remotehost[2 * MAXHOSTNAMELEN + 1];
#ifdef USE_PAM
! extern struct pam_conv conv;
#endif /* USE_PAM */
--- 202,210 ----
char remotehost[2 * MAXHOSTNAMELEN + 1];
#ifdef USE_PAM
! char c;
! static struct pam_conv conv = {
! misc_conv,
! NULL
! };
#endif /* USE_PAM */
***************
*** 384,418 ****
(void) pam_set_item (pamh, PAM_RHOST, hostname);
(void) pam_set_item (pamh, PAM_TTY, "/dev/tty");
! do {
! retcode = pam_authenticate(pamh, 0);
! if (retcode == PAM_SUCCESS)
! retcode = pam_acct_mgmt(pamh, 0);
! if (retcode == PAM_SUCCESS)
! break;
!
! if (retcode == PAM_AUTHTOKEN_REQD)
! retcode = pam_chauthtok (pamh,PAM_CHANGE_EXPIRED_AUTHTOK);
! } while (retcode == PAM_SUCCESS);
! if (retcode != PAM_SUCCESS) {
! pam_end(pamh,PAM_AUTH_ERR);
! exit (1);
}
- if (setgid(pwd->pw_gid) != 0) {
- fprintf(stderr, "cannot assume gid\n");
- exit (1);
- }
-
- if (initgroups(locuser, pwd->pw_gid) != 0) {
- fprintf(stderr, "cannot initgroups\n");
- exit (1);
- }
-
- retcode = pam_setcred(pamh, PAM_CRED_ESTABLISH);
if (retcode != PAM_SUCCESS) {
! pam_end(pamh,PAM_CRED_ERR);
}
! retcode = pam_open_session(pamh,0);
#endif
--- 389,417 ----
(void) pam_set_item (pamh, PAM_RHOST, hostname);
(void) pam_set_item (pamh, PAM_TTY, "/dev/tty");
! retcode = pam_authenticate(pamh, 0);
! if (retcode == PAM_SUCCESS)
! retcode = pam_acct_mgmt(pamh, 0);
! if (retcode == PAM_SUCCESS) {
! if (setgid(pwd->pw_gid) != 0) {
! fprintf(stderr, "Permission denied.\n");
! pam_end(pamh,PAM_SYSTEM_ERR);
! exit (1);
! }
! if (initgroups(locuser, pwd->pw_gid) != 0) {
! fprintf(stderr, "Permission denied.\n");
! pam_end(pamh,PAM_SYSTEM_ERR);
! exit (1);
! }
! retcode = pam_setcred(pamh, PAM_CRED_ESTABLISH);
}
+ if (retcode == PAM_SUCCESS)
+ retcode = pam_open_session(pamh,0);
if (retcode != PAM_SUCCESS) {
! pam_end(pamh,retcode);
! exit (1);
}
!
#endif
***************
*** 520,527 ****
remuser, hostname, locuser, cmdbuf);
}
-
- #ifdef USE_PAM
- pam_end(pamh, PAM_SUCCESS);
- #endif USE_PAM
execl(pwd->pw_shell, cp, "-c", cmdbuf, 0);
--- 519,522 ----
diff -r -C2 --new-file NetKit-B-0.07/rusers/Makefile NetKit-B-0.07A/rusers/Makefile
*** NetKit-B-0.07/rusers/Makefile Mon Jul 15 17:31:13 1996
--- NetKit-B-0.07A/rusers/Makefile Fri Jul 26 01:32:10 1996
***************
*** 4,9 ****
--- 4,12 ----
include ../MRULES
+ /* Doesn't compile cleanly with -Wall */
CFLAGS = -O2 -I ../include
+ RPCGEN = ../rpcgen.new/rpcgen
+
rusers: rusers.o rusers_xdr.o rnusers_xdr.o
$(CC) $(LDFLAGS) $^ $(LIBS) -o $@
***************
*** 19,33 ****
rusers.h: ../include/rpcsvc/rusers.x
! ../rpcgen.new/rpcgen -h -o rusers.h ../include/rpcsvc/rusers.x
rusers_xdr.c: ../include/rpcsvc/rusers.x
! ../rpcgen.new/rpcgen -c -C -o rusers_xdr.c ../include/rpcsvc/rusers.x
rnusers_xdr.o: rnusers_xdr.c rnusers.h
rnusers.h: ../include/rpcsvc/rnusers.x
! ../rpcgen.new/rpcgen -h -o rnusers.h ../include/rpcsvc/rnusers.x
rnusers_xdr.c: ../include/rpcsvc/rnusers.x
! ../rpcgen.new/rpcgen -c -C -o rnusers_xdr.c ../include/rpcsvc/rnusers.x
--- 22,36 ----
rusers.h: ../include/rpcsvc/rusers.x
! $(RPCGEN) -h -o rusers.h ../include/rpcsvc/rusers.x
rusers_xdr.c: ../include/rpcsvc/rusers.x
! $(RPCGEN) -c -C -o rusers_xdr.c ../include/rpcsvc/rusers.x
rnusers_xdr.o: rnusers_xdr.c rnusers.h
rnusers.h: ../include/rpcsvc/rnusers.x
! $(RPCGEN) -h -o rnusers.h ../include/rpcsvc/rnusers.x
rnusers_xdr.c: ../include/rpcsvc/rnusers.x
! $(RPCGEN) -c -C -o rnusers_xdr.c ../include/rpcsvc/rnusers.x
diff -r -C2 --new-file NetKit-B-0.07/telnet/externs.h NetKit-B-0.07A/telnet/externs.h
*** NetKit-B-0.07/telnet/externs.h Sat Jul 20 15:47:49 1996
--- NetKit-B-0.07A/telnet/externs.h Fri Jul 26 00:06:05 1996
***************
*** 32,36 ****
*
* from: @(#)externs.h 5.3 (Berkeley) 3/22/91
! * $Id: externs.h,v 1.3 1996/07/20 19:47:39 dholland Exp $
*/
--- 32,36 ----
*
* from: @(#)externs.h 5.3 (Berkeley) 3/22/91
! * $Id: externs.h,v 1.4 1996/07/26 04:05:03 dholland Exp $
*/
***************
*** 71,74 ****
--- 71,78 ----
#endif
#include <strings.h>
+
+ #ifdef __linux__
+ #include <unistd.h> /* get _POSIX_VDISABLE */
+ #endif
#ifndef _POSIX_VDISABLE
diff -r -C2 --new-file NetKit-B-0.07/telnetd/sys_term.c NetKit-B-0.07A/telnetd/sys_term.c
*** NetKit-B-0.07/telnetd/sys_term.c Tue Jul 16 04:58:31 1996
--- NetKit-B-0.07A/telnetd/sys_term.c Fri Jul 26 00:39:30 1996
***************
*** 36,40 ****
*/
char st_rcsid[] =
! "$Id: sys_term.c,v 1.4 1996/07/16 08:58:22 dholland Exp $";
#include "telnetd.h"
--- 36,40 ----
*/
char st_rcsid[] =
! "$Id: sys_term.c,v 1.5 1996/07/26 04:39:19 dholland Exp $";
#include "telnetd.h"
***************
*** 450,457 ****
struct stat stb;
! *p1 = "pqrstuvwxyzABCDE"[i];
*p2 = '0';
if (stat(line, &stb) < 0)
! break;
for (j = 0; j < 16; j++) {
*p2 = "0123456789abcdef"[j];
--- 450,457 ----
struct stat stb;
! *p1 = "pqrstuvwxyzabcde"[i];
*p2 = '0';
if (stat(line, &stb) < 0)
! continue;
for (j = 0; j < 16; j++) {
*p2 = "0123456789abcdef"[j];