From ef0c12ad9e546ebe3a6f2dd4df8fdd7ec7f6d3fb Mon Sep 17 00:00:00 2001
From: nicm <nicm>
Date: Fri, 28 Mar 2025 17:03:49 +0000
Subject: [PATCH] Fix read of uninitialized memory for jobs with JOB_PTY flag.
 From David Mandelberg.

---
 job.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/job.c b/job.c
index 943eef2c..ab696e36 100644
--- a/job.c
+++ b/job.c
@@ -183,7 +183,7 @@ job_run(const char *cmd, int argc, char **argv, struct environ *e,
 	environ_free(env);
 	free(argv0);
 
-	job = xmalloc(sizeof *job);
+	job = xcalloc(1, sizeof *job);
 	job->state = JOB_RUNNING;
 	job->flags = flags;
 
@@ -192,7 +192,8 @@ job_run(const char *cmd, int argc, char **argv, struct environ *e,
 	else
 		job->cmd = cmd_stringify_argv(argc, argv);
 	job->pid = pid;
-	strlcpy(job->tty, tty, sizeof job->tty);
+	if (flags & JOB_PTY)
+		strlcpy(job->tty, tty, sizeof job->tty);
 	job->status = 0;
 
 	LIST_INSERT_HEAD(&all_jobs, job, entry);