Blame SOURCES/xfsprogs-4.15.0-xfs_db-fix-crash-when-field-list-selector-string-has.patch

4af5d6
From 945e47e2fcc5d1cec693122286da06d8ab829c52 Mon Sep 17 00:00:00 2001
4af5d6
From: "Darrick J. Wong" <darrick.wong@oracle.com>
4af5d6
Date: Thu, 4 Jan 2018 13:58:29 -0600
4af5d6
Subject: [PATCH] xfs_db: fix crash when field list selector string has
4af5d6
 trailing slash
4af5d6
4af5d6
If I run the following command:
4af5d6
4af5d6
xfs_db /dev/sdf -x -c 'agf 0' -c 'addr refcntroot' -c 'addr ptrs[1]\'
4af5d6
4af5d6
it errors out with "bad character in field \" and
4af5d6
then ftok_free crashes on an invalid free() because picking up the
4af5d6
previous token (the closing bracket) xrealloc'd the token array to be 5
4af5d6
elements long but never set the last element's tok pointer.
4af5d6
Consequently the ftok_free tries to free whatever garbage pointer is in
4af5d6
that last element and kaboom.
4af5d6
4af5d6
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
4af5d6
Reviewed-by: Eric Sandeen <sandeen@sandeen.net>
4af5d6
[sandeen: slightly clarify commit log]
4af5d6
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
4af5d6
---
4af5d6
 db/flist.c | 1 +
4af5d6
 1 file changed, 1 insertion(+)
4af5d6
4af5d6
Index: xfsprogs-4.5.0/db/flist.c
4af5d6
===================================================================
4af5d6
--- xfsprogs-4.5.0.orig/db/flist.c
4af5d6
+++ xfsprogs-4.5.0/db/flist.c
4af5d6
@@ -400,6 +400,7 @@ flist_split(
4af5d6
 		strncpy(a, s, l);
4af5d6
 		a[l] = '\0';
4af5d6
 		v = xrealloc(v, (nv + 2) * sizeof(*v));
4af5d6
+		v[nv + 1].tok = NULL;
4af5d6
 		v[nv].tok = a;
4af5d6
 		v[nv].tokty = t;
4af5d6
 		nv++;