From e5d7ddd07e2e5d408974c9538e05252da47e991f Mon Sep 17 00:00:00 2001
From: Markus Uhlin <markus@nifty-networks.net>
Date: Tue, 25 Mar 2025 01:36:06 +0100
Subject: Fixed unchecked return sscanf() return values

---
 FICS/makerank.c | 28 ++++++++++++++++++++--------
 1 file changed, 20 insertions(+), 8 deletions(-)

diff --git a/FICS/makerank.c b/FICS/makerank.c
index bdc4d3b..4458f31 100644
--- a/FICS/makerank.c
+++ b/FICS/makerank.c
@@ -110,21 +110,33 @@ GetPlayerInfo(char *fileName, ENTRY *e)
 					    "strlcpy() truncated\n", __func__);
 				}
 			} else if (!strcmp(field, "S_NUM:")) {
-				sscanf(line, "%*s %d", &(e->r[0].num));
+				if (sscanf(line, "%*s %d", &(e->r[0].num)) != 1)
+					warnx("%s: S_NUM error", __func__);
 			} else if (!strcmp(field, "B_NUM:")) {
-				sscanf(line, "%*s %d", &(e->r[1].num));
+				if (sscanf(line, "%*s %d", &(e->r[1].num)) != 1)
+					warnx("%s: B_NUM error", __func__);
 			} else if (!strcmp(field, "W_NUM:")) {
-				sscanf(line, "%*s %d", &(e->r[2].num));
+				if (sscanf(line, "%*s %d", &(e->r[2].num)) != 1)
+					warnx("%s: W_NUM error", __func__);
 			} else if (!strcmp(field, "L_NUM:")) {
-				sscanf(line, "%*s %d", &(e->r[3].num));
+				if (sscanf(line, "%*s %d", &(e->r[3].num)) != 1)
+					warnx("%s: L_NUM error", __func__);
 			} else if (!strcmp(field, "S_RATING:")) {
-				sscanf(line, "%*s %d", &(e->r[0].rating));
+				if (sscanf(line, "%*s %d",
+				   &(e->r[0].rating)) != 1)
+					warnx("%s: S_RATING error", __func__);
 			} else if (!strcmp(field, "B_RATING:")) {
-				sscanf(line, "%*s %d", &(e->r[1].rating));
+				if (sscanf(line, "%*s %d",
+				    &(e->r[1].rating)) != 1)
+					warnx("%s: B_RATING error", __func__);
 			} else if (!strcmp(field, "W_RATING:")) {
-				sscanf(line, "%*s %d", &(e->r[2].rating));
+				if (sscanf(line, "%*s %d",
+				    &(e->r[2].rating)) != 1)
+					warnx("%s: W_RATING error", __func__);
 			} else if (!strcmp(field, "L_RATING:")) {
-				sscanf(line, "%*s %d", &(e->r[3].rating));
+				if (sscanf(line, "%*s %d",
+				    &(e->r[3].rating)) != 1)
+					warnx("%s: L_RATING error", __func__);
 			} else if (!strcmp(field, "Network:")) {
 				done = 1;
 			}
-- 
cgit v1.2.3