From 9ad62f990ebc17c55ededd5da67d2617a1cdb128 Mon Sep 17 00:00:00 2001 From: veneficium Date: Tue, 3 Feb 2026 19:35:30 +0100 Subject: [PATCH] add control character sanitization --- kissy.c | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/kissy.c b/kissy.c index 8de9eee..87f5cd7 100644 --- a/kissy.c +++ b/kissy.c @@ -25,6 +25,7 @@ #include #include #include +#include // mreowww meow nya :3 @@ -64,12 +65,21 @@ int main (int argc, char **argv) { char* user = pw2->pw_name; // if we have a second argument, set a custom kiss message - char* kiss; - if (argc >= 3) - kiss = argv[2]; - else - kiss = "*mwah*"; - + char kiss[32] = "*mwah*"; + if (argc >= 3) { + int len = strlen(argv[2]); + int written_chars = 0; + for (int i = 0; i < len; i++) { + if (written_chars >= 31) { + kiss[31] = '\0'; + break; + }; + if (iscntrl(argv[2][i])) continue; + kiss[i] = argv[2][i]; + written_chars++; + } + } + bool kissed = false; // iterate over all files in directory DIR *dir = opendir("/dev/pts");