From: Greg Kroah-Hartman Date: Sun, 12 Jan 2020 19:58:30 +0000 (+0100) Subject: 4.9-stable patches X-Git-Tag: v4.4.210~32 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d7cd1d0ba5852756f5bf33da2eecb40c70df3f28;p=thirdparty%2Fkernel%2Fstable-queue.git 4.9-stable patches added patches: kobject-export-kobject_get_unless_zero.patch --- diff --git a/queue-4.9/kobject-export-kobject_get_unless_zero.patch b/queue-4.9/kobject-export-kobject_get_unless_zero.patch new file mode 100644 index 00000000000..441f7ff1132 --- /dev/null +++ b/queue-4.9/kobject-export-kobject_get_unless_zero.patch @@ -0,0 +1,54 @@ +From c70c176ff8c3ff0ac6ef9a831cd591ea9a66bd1a Mon Sep 17 00:00:00 2001 +From: Jan Kara +Date: Thu, 23 Mar 2017 01:37:01 +0100 +Subject: kobject: Export kobject_get_unless_zero() + +From: Jan Kara + +commit c70c176ff8c3ff0ac6ef9a831cd591ea9a66bd1a upstream. + +Make the function available for outside use and fortify it against NULL +kobject. + +CC: Greg Kroah-Hartman +Reviewed-by: Bart Van Assche +Acked-by: Tejun Heo +Signed-off-by: Jan Kara +Signed-off-by: Jens Axboe +Signed-off-by: Greg Kroah-Hartman + +--- + include/linux/kobject.h | 2 ++ + lib/kobject.c | 5 ++++- + 2 files changed, 6 insertions(+), 1 deletion(-) + +--- a/include/linux/kobject.h ++++ b/include/linux/kobject.h +@@ -108,6 +108,8 @@ extern int __must_check kobject_rename(s + extern int __must_check kobject_move(struct kobject *, struct kobject *); + + extern struct kobject *kobject_get(struct kobject *kobj); ++extern struct kobject * __must_check kobject_get_unless_zero( ++ struct kobject *kobj); + extern void kobject_put(struct kobject *kobj); + + extern const void *kobject_namespace(struct kobject *kobj); +--- a/lib/kobject.c ++++ b/lib/kobject.c +@@ -599,12 +599,15 @@ struct kobject *kobject_get(struct kobje + } + EXPORT_SYMBOL(kobject_get); + +-static struct kobject * __must_check kobject_get_unless_zero(struct kobject *kobj) ++struct kobject * __must_check kobject_get_unless_zero(struct kobject *kobj) + { ++ if (!kobj) ++ return NULL; + if (!kref_get_unless_zero(&kobj->kref)) + kobj = NULL; + return kobj; + } ++EXPORT_SYMBOL(kobject_get_unless_zero); + + /* + * kobject_cleanup - free kobject resources. diff --git a/queue-4.9/series b/queue-4.9/series index 27ac0106d58..ed56204cbce 100644 --- a/queue-4.9/series +++ b/queue-4.9/series @@ -1 +1,2 @@ +kobject-export-kobject_get_unless_zero.patch chardev-avoid-potential-use-after-free-in-chrdev_open.patch