From cd91fa27d265cab6a0fdba8309151eb7f4b606b1 Mon Sep 17 00:00:00 2001 From: Vladislav Bolkhovitin Date: Fri, 19 Jun 2009 16:36:34 +0000 Subject: [PATCH] Merge of r914: Fix possible crash in scst_copy_sg() git-svn-id: http://svn.code.sf.net/p/scst/svn/branches/1.0.1.x@915 d57e44dd-8a1f-0410-8b47-8ef2f437770f --- scst/src/scst_lib.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/scst/src/scst_lib.c b/scst/src/scst_lib.c index 700cd1b60..32937c767 100644 --- a/scst/src/scst_lib.c +++ b/scst/src/scst_lib.c @@ -2352,6 +2352,14 @@ void scst_copy_sg(struct scst_cmd *cmd, enum scst_sg_copy_dir copy_dir) "to_copy %d", cmd, copy_dir, src_sg, src_sg_cnt, dst_sg, to_copy); + if (unlikely(src_sg == NULL) || unlikely(dst_sg == NULL)) { + /* + * It can happened, e.g., with scst_user for cmd with delay + * alloc, which failed with Check Condition. + */ + goto out; + } + dst = sg_page(dst_sg); dst_len = dst_sg->length; dst_offs = dst_sg->offset;