skill: Fix getline() usage.

man getline: "If *lineptr is set to NULL and *n is set 0 before the
call, then getline() will allocate a buffer for storing the line. This
buffer should be freed by the user program even if getline() failed."
This commit is contained in:
Qualys Security Advisory 1970-01-01 00:00:00 +00:00 committed by Craig Small
parent 7d6977b6f7
commit 453e1df5d1

View File

@ -131,13 +131,15 @@ static void hurt_proc(int tty, int uid, int pid, const char *restrict const cmd,
char dn_buf[1000];
dev_to_tty(dn_buf, 999, tty, pid, ABBREV_DEV);
if (run_time->interactive) {
char *buf;
char *buf = NULL;
size_t len = 0;
fprintf(stderr, "%-8s %-8s %5d %-16.16s ? ",
(char *)dn_buf, pwcache_get_user(uid), pid, cmd);
fflush (stdout);
if (getline(&buf, &len, stdin) == -1)
if (getline(&buf, &len, stdin) == -1) {
free(buf);
return;
}
if (rpmatch(buf) < 1) {
free(buf);
return;