Commit Diff


commit - 679bf294d1a0924d7783ab6748f1ff327200373b
commit + c11aba939e5429b7138424231396170873a11259
blob - 7b1d44e3b43f8ee52c529942ead229b5ffd2d351
blob + 55330cb849ffeee68cc200d5fbe83f72bf52922c
--- FICS/gamedb.c
+++ FICS/gamedb.c
@@ -1127,14 +1127,19 @@ ReadOneV1Move(FILE *fp, move_t *m)
 		}
 
 		if (m->piecePromotionTo != 0) {
-			if (m->piecePromotionTo == KNIGHT)
-				strcat(m->algString, "=N");
-			else if (m->piecePromotionTo == BISHOP)
-				strcat(m->algString, "=B");
-			else if (m->piecePromotionTo == ROOK)
-				strcat(m->algString, "=R");
-			else if (m->piecePromotionTo == QUEEN)
-				strcat(m->algString, "=Q");
+			if (m->piecePromotionTo == KNIGHT) {
+				mstrlcat(m->algString, "=N",
+				    sizeof(m->algString));
+			} else if (m->piecePromotionTo == BISHOP) {
+				mstrlcat(m->algString, "=B",
+				    sizeof(m->algString));
+			} else if (m->piecePromotionTo == ROOK) {
+				mstrlcat(m->algString, "=R",
+				    sizeof(m->algString));
+			} else if (m->piecePromotionTo == QUEEN) {
+				mstrlcat(m->algString, "=Q",
+				    sizeof(m->algString));
+			}
 
 			m->piecePromotionTo |= m->color;
 		}
@@ -1189,7 +1194,7 @@ ReadOneV1Move(FILE *fp, move_t *m)
 		}
 	}
 	if (check)
-		strcat(m->algString, "+");
+		mstrlcat(m->algString, "+", sizeof m->algString);
 }
 
 PRIVATE int