diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2023-01-06 21:16:21 +0000 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2023-01-06 21:16:21 +0000 |
commit | 19c89f5212bf073baf999fd3320cfe7ffe915f70 (patch) | |
tree | ad2795d0d671fcb285a4f3af9d6838354dd6e13f /sys | |
parent | 6940bbc50beffcd7912abfc8756936add39183bb (diff) |
libauthsrv: import better passtodeskey() function (from drawterm)
Diffstat (limited to 'sys')
-rw-r--r-- | sys/src/libauthsrv/passtokey.c | 12 |
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))); |