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)
committerJihoon Kim <jihoon48.kim@samsung.com>
Mon, 4 Dec 2023 10:31:00 +0000 (19:31 +0900)
src/evdev-tablet.c

index c290845c26abeb4f09aeea2d6f90fd3e3f4de1c7..b723d98cee51a5301744182aa233a1e43a6c2d48 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