33 lines
1.1 KiB
Diff
33 lines
1.1 KiB
Diff
From ed22939428be3bd676e4261cf96e144c15d4e686 Mon Sep 17 00:00:00 2001
|
|
From: wangyuhang <wangyuhang27>
|
|
Date: Tue, 2 Apr 2024 15:44:35 +0800
|
|
Subject: [PATCH] solve the problem of dereference null return value when
|
|
moving a job to the head of the linked list
|
|
|
|
---
|
|
src/cmd/ksh93/sh/jobs.c | 7 ++++---
|
|
1 file changed, 4 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/src/cmd/ksh93/sh/jobs.c b/src/cmd/ksh93/sh/jobs.c
|
|
index 5ad42c0..a46de01 100644
|
|
--- a/src/cmd/ksh93/sh/jobs.c
|
|
+++ b/src/cmd/ksh93/sh/jobs.c
|
|
@@ -1105,10 +1105,11 @@ int job_post(Shell_t *shp, pid_t pid, pid_t join) {
|
|
val = job.curjobid;
|
|
}
|
|
// If job to join is not first move it to front.
|
|
- if (val) {
|
|
+ if (val && job.pwlist) {
|
|
pw = job_byjid(val);
|
|
- assert(pw);
|
|
- if (pw != job.pwlist) {
|
|
+ if (!pw)
|
|
+ errormsg(SH_DICT, ERROR_warn(0), "the job cannot be found in the linked list");
|
|
+ if (pw && (pw != job.pwlist)) {
|
|
job_unlink(pw);
|
|
pw->p_nxtjob = job.pwlist;
|
|
job.pwlist = pw;
|
|
--
|
|
2.33.0
|
|
|