X-Git-Url: https://git.xinqibao.xyz/slock.git/blobdiff_plain/ff79c382c5d1c83c8e771223cbb99bc0e87be697..6725bb2a3a425ffff9c2253d60c0f25513c78a93:/slock.c?ds=sidebyside diff --git a/slock.c b/slock.c index 62fcac9..94cb26b 100644 --- a/slock.c +++ b/slock.c @@ -1,4 +1,4 @@ -/* (C)opyright MMIV-MMV Anselm R. Garbe +/* (C)opyright MMVI-MMVII Anselm R. Garbe * See LICENSE file for license details. */ #define _XOPEN_SOURCE 500 @@ -102,7 +102,7 @@ main(int argc, char **argv) { while(running && !XNextEvent(dpy, &ev)) if(ev.type == KeyPress) { buf[0] = 0; - num = XLookupString(&ev.xkey, buf, sizeof(buf), &ksym, 0); + num = XLookupString(&ev.xkey, buf, sizeof buf, &ksym, 0); if(IsFunctionKey(ksym) || IsKeypadKey(ksym) || IsMiscFunctionKey(ksym) || IsPFKey(ksym) || IsPrivateKeypadKey(ksym)) @@ -122,7 +122,7 @@ main(int argc, char **argv) { --len; break; default: - if(num && !iscntrl((int) buf[0])) { + if(num && !iscntrl((int) buf[0]) && (len + num < sizeof passwd)) { memcpy(passwd + len, buf, num); len += num; }