Date: Monday November 25, 2002 @ 0:05
Author: cameron
Update of /home/netrek/cvsroot/Vanilla/ntserv
In directory swashbuckler.real-time.com:/var/tmp/cvs-serv26492/ntserv
Modified Files:
ntscmds.c getname.c daemonII.c
Log Message:
fix password command corruption
****************************************
Index: Vanilla/ntserv/ntscmds.c
diff -u Vanilla/ntserv/ntscmds.c:1.25 Vanilla/ntserv/ntscmds.c:1.26
--- Vanilla/ntserv/ntscmds.c:1.25 Thu Oct 10 20:24:46 2002
+++ Vanilla/ntserv/ntscmds.c Mon Nov 25 00:05:03 2002
@@ -1,4 +1,4 @@
-/* $Id: ntscmds.c,v 1.25 2002/10/11 01:24:46 cameron Exp $
+/* $Id: ntscmds.c,v 1.26 2002/11/25 06:05:03 cameron Exp $
*/
/*
@@ -1150,7 +1150,7 @@
}
/* change the password */
- changepassword(&me->p_stats, one);
+ changepassword(one);
/* tell her we changed it */
pmessage(who, MINDIV, addr,
Index: Vanilla/ntserv/getname.c
diff -u Vanilla/ntserv/getname.c:1.11 Vanilla/ntserv/getname.c:1.12
--- Vanilla/ntserv/getname.c:1.11 Wed Oct 10 02:36:52 2001
+++ Vanilla/ntserv/getname.c Mon Nov 25 00:05:03 2002
@@ -222,11 +222,12 @@
return;
}
-void changepassword (struct statentry *player, char *passPick)
+void changepassword (char *passPick)
{
saltbuf sb;
- strcpy(player->password, (char *) crypt(passPick, salt(player->name, sb)));
- savepass(player);
+ struct statentry se;
+ strcpy(se.password, (char *) crypt(passPick, salt(me->p_name, sb)));
+ savepass(&se);
}
static void savepass(const struct statentry* se)
@@ -237,8 +238,7 @@
fd = open(PlayerFile, O_WRONLY, 0644);
if (fd >= 0) {
lseek(fd, me->p_pos * sizeof(struct statentry) +
- offsetof(struct statentry, password),
- SEEK_SET);
+ offsetof(struct statentry, password), SEEK_SET);
write(fd, &se->password, sizeof(se->password));
close(fd);
}
@@ -259,8 +259,7 @@
if (fd >= 0) {
me->p_stats.st_lastlogin = time(NULL);
lseek(fd, me->p_pos * sizeof(struct statentry) +
- offsetof(struct statentry, stats),
- SEEK_SET);
+ offsetof(struct statentry, stats), SEEK_SET);
write(fd, (char *) &me->p_stats, sizeof(struct stats));
close(fd);
}
Index: Vanilla/ntserv/daemonII.c
diff -u Vanilla/ntserv/daemonII.c:1.37 Vanilla/ntserv/daemonII.c:1.38
--- Vanilla/ntserv/daemonII.c:1.37 Mon Jun 4 17:06:28 2001
+++ Vanilla/ntserv/daemonII.c Mon Nov 25 00:05:03 2002
@@ -5,6 +5,7 @@
#include <stdio.h>
#include <stdlib.h>
+#include <stddef.h>
#include <sys/types.h>
#ifdef AUTOMOTD
#include <sys/stat.h>
@@ -3740,7 +3741,8 @@
fd = open(PlayerFile, O_WRONLY, 0644);
if (fd >= 0) {
- lseek(fd, 32 + victim->p_pos * sizeof(struct statentry) , SEEK_SET);
+ lseek(fd, victim->p_pos * sizeof(struct statentry) +
+ offsetof(struct statentry, stats), SEEK_SET);
write(fd, (char *) &victim->p_stats, sizeof(struct stats));
close(fd);
}