]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blame - releases/3.6.2/lib-gcd.c-prevent-possible-div-by-0.patch
4.9-stable patches
[thirdparty/kernel/stable-queue.git] / releases / 3.6.2 / lib-gcd.c-prevent-possible-div-by-0.patch
CommitLineData
e76a96dd
GKH
1From e96875677fb2b7cb739c5d7769824dff7260d31d Mon Sep 17 00:00:00 2001
2From: Davidlohr Bueso <dave@gnu.org>
3Date: Thu, 4 Oct 2012 17:13:18 -0700
4Subject: lib/gcd.c: prevent possible div by 0
5
6From: Davidlohr Bueso <dave@gnu.org>
7
8commit e96875677fb2b7cb739c5d7769824dff7260d31d upstream.
9
10Account for all properties when a and/or b are 0:
11gcd(0, 0) = 0
12gcd(a, 0) = a
13gcd(0, b) = b
14
15Fixes no known problems in current kernels.
16
17Signed-off-by: Davidlohr Bueso <dave@gnu.org>
18Cc: Eric Dumazet <eric.dumazet@gmail.com>
19Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
20Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
21Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
22
23---
24 lib/gcd.c | 3 +++
25 1 file changed, 3 insertions(+)
26
27--- a/lib/gcd.c
28+++ b/lib/gcd.c
29@@ -9,6 +9,9 @@ unsigned long gcd(unsigned long a, unsig
30
31 if (a < b)
32 swap(a, b);
33+
34+ if (!b)
35+ return a;
36 while ((r = a % b) != 0) {
37 a = b;
38 b = r;