summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2023-01-06 21:16:21 +0000
committercinap_lenrek <cinap_lenrek@felloff.net>2023-01-06 21:16:21 +0000
commit19c89f5212bf073baf999fd3320cfe7ffe915f70 (patch)
treead2795d0d671fcb285a4f3af9d6838354dd6e13f /sys
parent6940bbc50beffcd7912abfc8756936add39183bb (diff)
libauthsrv: import better passtodeskey() function (from drawterm)
Diffstat (limited to 'sys')
-rw-r--r--sys/src/libauthsrv/passtokey.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/sys/src/libauthsrv/passtokey.c b/sys/src/libauthsrv/passtokey.c
index e6803427a..40da2b2b3 100644
--- a/sys/src/libauthsrv/passtokey.c
+++ b/sys/src/libauthsrv/passtokey.c
@@ -9,14 +9,14 @@ passtodeskey(char key[DESKEYLEN], char *p)
uchar buf[PASSWDLEN], *t;
int i, n;
- n = strlen(p);
- if(n >= PASSWDLEN)
- n = PASSWDLEN-1;
memset(buf, ' ', 8);
- t = buf;
- strncpy((char*)t, p, n);
- t[n] = 0;
+ n = strlen(p);
+ if(n >= sizeof(buf))
+ n = sizeof(buf)-1;
+ memmove(buf, p, n);
+ buf[n] = 0;
memset(key, 0, DESKEYLEN);
+ t = buf;
for(;;){
for(i = 0; i < DESKEYLEN; i++)
key[i] = (t[i] >> i) + (t[i+1] << (8 - (i+1)));