tablet: Fix divide by zero error. 'count' could be zero
authorDuna Oh <duna.oh@samsung.com>
Tue, 8 Feb 2022 06:39:18 +0000 (15:39 +0900)
committerduna.oh <duna.oh@samsung.com>
Fri, 27 Jan 2023 05:46:44 +0000 (14:46 +0900)
src/evdev-tablet.c

index 68c3c3e..4bd7b18 100644 (file)
@@ -686,6 +686,9 @@ tablet_smoothen_axes(const struct tablet_dispatch *tablet,
        size_t count = tablet_history_size(tablet);
        struct tablet_axes smooth = { 0 };
 
+       if (count <= 0)
+               return;
+
        for (i = 0; i < count; i++) {
                const struct tablet_axes *a = tablet_history_get(tablet, i);
 
@@ -696,11 +699,11 @@ tablet_smoothen_axes(const struct tablet_dispatch *tablet,
                smooth.tilt.y += a->tilt.y;
        }
 
-       axes->point.x = smooth.point.x/count;
-       axes->point.y = smooth.point.y/count;
+       axes->point.x = smooth.point.x/(double)count;
+       axes->point.y = smooth.point.y/(double)count;
 
-       axes->tilt.x = smooth.tilt.x/count;
-       axes->tilt.y = smooth.tilt.y/count;
+       axes->tilt.x = smooth.tilt.x/(double)count;
+       axes->tilt.y = smooth.tilt.y/(double)count;
 }
 
 static bool