--- db-4.7.25/tcl/tcl_db.c +++ db-4.7.25/tcl/tcl_db.c @@ -2595,9 +2595,9 @@ tcl_DbGetFlags(interp, objc, objv, dbp) for (i = 0; db_flags[i].flag != 0; i++) if (LF_ISSET(db_flags[i].flag)) { if (strlen(buf) > 0) - (void)strncat(buf, " ", sizeof(buf)); + (void)strncat(buf, " ", sizeof(buf)-1); (void)strncat( - buf, db_flags[i].arg, sizeof(buf)); + buf, db_flags[i].arg, sizeof(buf)-1); } res = NewStringObj(buf, strlen(buf)); @@ -2651,9 +2651,9 @@ tcl_DbGetOpenFlags(interp, objc, objv, dbp) for (i = 0; open_flags[i].flag != 0; i++) if (LF_ISSET(open_flags[i].flag)) { if (strlen(buf) > 0) - (void)strncat(buf, " ", sizeof(buf)); + (void)strncat(buf, " ", sizeof(buf)-1); (void)strncat( - buf, open_flags[i].arg, sizeof(buf)); + buf, open_flags[i].arg, sizeof(buf)-1); } res = NewStringObj(buf, strlen(buf)); --- db-4.7.25/tcl/tcl_env.c +++ db-4.7.25/tcl/tcl_env.c @@ -2219,9 +2219,9 @@ env_GetFlags(interp, objc, objv, dbenv) for (i = 0; open_flags[i].flag != 0; i++) if (LF_ISSET(open_flags[i].flag)) { if (strlen(buf) > 0) - (void)strncat(buf, " ", sizeof(buf)); + (void)strncat(buf, " ", sizeof(buf)-1); (void)strncat( - buf, open_flags[i].arg, sizeof(buf)); + buf, open_flags[i].arg, sizeof(buf)-1); } res = NewStringObj(buf, strlen(buf)); @@ -2282,9 +2282,9 @@ env_GetOpenFlag(interp, objc, objv, dbenv) for (i = 0; open_flags[i].flag != 0; i++) if (LF_ISSET(open_flags[i].flag)) { if (strlen(buf) > 0) - (void)strncat(buf, " ", sizeof(buf)); + (void)strncat(buf, " ", sizeof(buf)-1); (void)strncat( - buf, open_flags[i].arg, sizeof(buf)); + buf, open_flags[i].arg, sizeof(buf)-1); } res = NewStringObj(buf, strlen(buf)); @@ -2334,9 +2334,9 @@ tcl_EnvGetEncryptFlags(interp, objc, objv, dbenv) for (i = 0; encrypt_flags[i].flag != 0; i++) if (LF_ISSET(encrypt_flags[i].flag)) { if (strlen(buf) > 0) - (void)strncat(buf, " ", sizeof(buf)); + (void)strncat(buf, " ", sizeof(buf)-1); (void)strncat( - buf, encrypt_flags[i].arg, sizeof(buf)); + buf, encrypt_flags[i].arg, sizeof(buf)-1); } res = NewStringObj(buf, strlen(buf)); --- db-4.7.25/tcl/tcl_seq.c +++ db-4.7.25/tcl/tcl_seq.c @@ -497,9 +497,9 @@ tcl_SeqGetFlags(interp, objc, objv, seq) for (i = 0; seq_flags[i].flag != 0; i++) if (LF_ISSET(seq_flags[i].flag)) { if (strlen(buf) > 0) - (void)strncat(buf, " ", sizeof(buf)); + (void)strncat(buf, " ", sizeof(buf)-1); (void)strncat( - buf, seq_flags[i].arg, sizeof(buf)); + buf, seq_flags[i].arg, sizeof(buf)-1); } res = NewStringObj(buf, strlen(buf));