]> granicus.if.org Git - nethack/commitdiff
Fix sprintf warnings in weapon.c
authorDean Luick <dean@nethack.org>
Sat, 9 Jan 2021 01:00:11 +0000 (19:00 -0600)
committerDean Luick <dean@nethack.org>
Sat, 9 Jan 2021 02:25:36 +0000 (20:25 -0600)
src/weapon.c

index dd2aad43000f6c46c3dd2fc5c80344b800aa82df..698d090c02e2f3d3b2dd338447f41ac05d33c533 100644 (file)
@@ -1271,21 +1271,23 @@ enhance_weapon_skill()
                 (void) skill_level_name(i, sklnambuf);
                 if (wizard) {
                     if (!iflags.menu_tab_sep)
-                        Sprintf(buf, " %s%-*s %-12s %5d(%4d)", prefix,
-                                longest, P_NAME(i), sklnambuf, P_ADVANCE(i),
-                                practice_needed_to_advance(P_SKILL(i)));
+                        n = snprintf(buf, sizeof(buf), " %s%-*s %-12s %5d(%4d)", prefix,
+                                    longest, P_NAME(i), sklnambuf, P_ADVANCE(i),
+                                    practice_needed_to_advance(P_SKILL(i)));
                     else
-                        Sprintf(buf, " %s%s\t%s\t%5d(%4d)", prefix, P_NAME(i),
-                                sklnambuf, P_ADVANCE(i),
-                                practice_needed_to_advance(P_SKILL(i)));
+                        n = snprintf(buf, sizeof(buf), " %s%s\t%s\t%5d(%4d)", prefix, P_NAME(i),
+                                    sklnambuf, P_ADVANCE(i),
+                                    practice_needed_to_advance(P_SKILL(i)));
                 } else {
                     if (!iflags.menu_tab_sep)
-                        Sprintf(buf, " %s %-*s [%s]", prefix, longest,
-                                P_NAME(i), sklnambuf);
+                        n = snprintf(buf, sizeof(buf), " %s %-*s [%s]", prefix, longest,
+                                    P_NAME(i), sklnambuf);
                     else
-                        Sprintf(buf, " %s%s\t[%s]", prefix, P_NAME(i),
-                                sklnambuf);
+                        n = snprintf(buf, sizeof(buf), " %s%s\t[%s]", prefix, P_NAME(i),
+                                    sklnambuf);
                 }
+               if (n >= sizeof(buf)) /* check for overflow */
+                   buf[sizeof(buf)-1] = 0; /* terminate string */
                 any.a_int = can_advance(i, speedy) ? i + 1 : 0;
                 add_menu(win, &nul_glyphinfo, &any, 0, 0,
                          ATR_NONE, buf, MENU_ITEMFLAGS_NONE);