summaryrefslogtreecommitdiffstats
path: root/src/eval.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2016-03-06 21:34:03 +0100
committerBram Moolenaar <Bram@vim.org>2016-03-06 21:34:03 +0100
commit839fd11d7ed1a96bace3159c4d1861658864aae3 (patch)
treea1d3ac933bfc82942aad2074480322d156e81fcd /src/eval.c
parent99ef06296f3c37490511c03786a2c8672e015c56 (diff)
patch 7.4.1503v7.4.1503
Problem: Crash when using ch_getjob(). (Damien) Solution: Check for a NULL job.
Diffstat (limited to 'src/eval.c')
-rw-r--r--src/eval.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/eval.c b/src/eval.c
index 23154061c4..510dd128da 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -15249,6 +15249,7 @@ f_job_start(typval_T *argvars UNUSED, typval_T *rettv)
#endif
#ifdef FEAT_CHANNEL
+ /* If the channel is reading from a buffer, write lines now. */
channel_write_in(job->jv_channel);
#endif
@@ -22601,7 +22602,11 @@ get_tv_string_buf_chk(typval_T *varp, char_u *buf)
#ifdef FEAT_JOB
{
job_T *job = varp->vval.v_job;
- char *status = job->jv_status == JOB_FAILED ? "fail"
+ char *status;
+
+ if (job == NULL)
+ return (char_u *)"no process";
+ status = job->jv_status == JOB_FAILED ? "fail"
: job->jv_status == JOB_ENDED ? "dead"
: "run";
# ifdef UNIX