aboutsummaryrefslogtreecommitdiffstats
path: root/databases/db5/files/patch-lang_tcl_tcl__db.c
blob: dbd2fb6e50094b910b0f0d5944830c965b4afdf5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
--- lang/tcl/tcl_db.c.orig  2013-09-09 15:35:07 UTC
+++ lang/tcl/tcl_db.c
@@ -3708,9 +3708,10 @@ 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, db_flags[i].arg, sizeof(buf));
+                   (void)strncat(buf, " ",
+                       sizeof(buf) - (strlen(buf) + 1));
+               (void)strncat(buf, db_flags[i].arg,
+                   sizeof(buf) - (strlen(buf) + 1));
            }
 
        res = NewStringObj(buf, strlen(buf));
@@ -3764,9 +3765,10 @@ tcl_DbGetOpenFlags(interp, objc, objv, d
        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, open_flags[i].arg, sizeof(buf));
+                   (void)strncat(buf, " ",
+                       sizeof(buf) - (strlen(buf) + 1));
+               (void)strncat(buf, open_flags[i].arg,
+                   sizeof(buf) - (strlen(buf) + 1));
            }
 
        res = NewStringObj(buf, strlen(buf));