Fix a critical underflow in the touch calibration. This is a cherry-pick of Iacc746e1cc97bf3
Bug: 5629373
Change-Id: Ia198fe5e82b9e7fb801d9bae65cf9c6bbbd1befa
diff --git a/native/src/correction.cpp b/native/src/correction.cpp
index 31493ee..02aae92 100644
--- a/native/src/correction.cpp
+++ b/native/src/correction.cpp
@@ -711,6 +711,9 @@
                 //         \             .
                 // C        \            .
                 //   0   R1 R2
+                if (factor <= 0) {
+                    return -1;
+                }
                 multiplyRate((int)(factor * 100), &finalFreq);
             } else if (squaredDistance == PROXIMITY_CHAR_WITHOUT_DISTANCE_INFO) {
                 multiplyRate(WORDS_WITH_PROXIMITY_CHARACTER_DEMOTION_RATE, &finalFreq);