merge from krb5-1-2-beta4
authorKen Raeburn <raeburn@mit.edu>
Fri, 23 Jun 2000 22:43:59 +0000 (22:43 +0000)
committerKen Raeburn <raeburn@mit.edu>
Fri, 23 Jun 2000 22:43:59 +0000 (22:43 +0000)
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@12426 dc483132-0cff-0310-8789-dd5450dbe970

src/util/db2/ChangeLog
src/util/db2/hash/dbm.c
src/util/et/ChangeLog
src/util/et/com_err.c
src/util/pty/ChangeLog
src/util/pty/configure.in
src/util/ss/ChangeLog
src/util/ss/help.c
src/util/ss/list_rqs.c
src/util/ss/mk_cmds.c
src/util/ss/utils.c

index 7972728d647a396b8bdc4455ff2cf73c1c079859..9ce240aecb145060ca260b45a8f702d3e02a70e4 100644 (file)
@@ -1,3 +1,7 @@
+2000-05-01  Nalin Dahyabhai  <nalin@redhat.com>
+
+       * hash/dbm.c (kdb2_dbm_open): Don't overflow buffer "path".
+
 1999-08-15  Tom Yu  <tlyu@mit.edu>
 
        * README.NOT.SLEEPYCAT.DB: New file; pointer to README to
index 50921de84a61596b8dbcd4290db319a204964ded..aa9676632b39fb3773af647b23568e18d2bc01f8 100644 (file)
@@ -168,8 +168,9 @@ kdb2_dbm_open(file, flags, mode)
        info.cachesize = 0;
        info.hash = NULL;
        info.lorder = 0;
-       (void)strcpy(path, file);
-       (void)strcat(path, DBM_SUFFIX);
+       (void)strncpy(path, file, sizeof(path) - 1);
+       path[sizeof(path) - 1] = '\0';
+       (void)strncat(path, DBM_SUFFIX, sizeof(path) - 1 - strlen(path));
        return ((DBM *)__hash_open(path, flags, mode, &info, 0));
 }
 
index 6202dd2db5297a27a917de574bdf73a8904b8066..e0f979369bac25b4a36a38563eeb601c75159e75 100644 (file)
@@ -1,3 +1,13 @@
+2000-05-07  Miro Jurisic  <meeroh@mit.edu>
+
+       * com_err.c (default_com_err_proc): use strncpy
+       where strncpy was meant (typo in Nalin's patch)
+
+2000-05-01  Nalin Dahyabhai  <nalin@redhat.com>
+
+       * com_err.c (default_com_err_proc) [_MSDOS || _WIN32 ||
+       macintosh]: Don't overflow buffer "errbuf".
+
 2000-02-23  Ken Raeburn  <raeburn@mit.edu>
 
        * Makefile.in (com_err.o): Depends on com_err.c.
index 31da130db261baf5af5928ebe95ab753cc682597..7bb081048df4a8c67b6dc3cd7666c737af02f023 100644 (file)
@@ -50,15 +50,18 @@ static void default_com_err_proc(whoami, code, fmt, ap)
        char errbuf[1024] = "";
 
        if (whoami) {
-               strcat (errbuf, whoami);
-               strcat (errbuf, ": ");
+               errbuf[sizeof(errbuf) - 1] = '\0';
+               strncat (errbuf, whoami, sizeof(errbuf) - 1 - strlen(errbuf));
+               strncat (errbuf, ": ", sizeof(errbuf) - 1 - strlen(errbuf));
        }
        if (code) {
-               strcat (errbuf, error_message(code));
-               strcat (errbuf, " ");
+               errbuf[sizeof(errbuf) - 1] = '\0';
+               strncat (errbuf, error_message(code), sizeof(errbuf) - 1 - strlen(errbuf));
+               strncat (errbuf, " ", sizeof(errbuf) - 1 - strlen(errbuf));
        }
        if (fmt)
                vsprintf (errbuf + strlen (errbuf), fmt, ap);
+       errbuf[sizeof(errbuf) - 1] = '\0';
 
 #ifdef macintosh
        MacMessageBox(errbuf);
index 4a3fb97fb7507f6f1b910ec3dcb70abff63390b6..de572707be514208756a0940449c7d200e46b327 100644 (file)
@@ -1,3 +1,8 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * configure.in: Check for alpha*-dec-osf* instead of
+       alpha-dec-osf*.
+
 1999-10-26  Wilfredo Sanchez  <tritan@mit.edu>
 
        * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
index 398b1827f2cb219b788b78229536d6aa5e300241..58ceb8369517c7fe09ed4a927172348d7a139d4c 100644 (file)
@@ -30,7 +30,7 @@ ac_cv_func_setsid=no # setsid doesn't do the right thing under Ultrix even thoug
 # Moreover, strops.h trashes sys/ioctl.h
 krb5_cv_has_streams=no
 ;;
-alpha-dec-osf*)
+alpha*-dec-osf*)
        AC_CHECK_LIB(security,main,
                AC_DEFINE(HAVE_SETLUID)
                LOGINLIBS="$LOGINLIBS -lsecurity"
index 0b209c38dd6b6fa74ee32c2e558af62b0c52a39c..475549aaf807e261a2080b10e8a42ac9c7202241 100644 (file)
@@ -1,3 +1,11 @@
+2000-05-01  Nalin Dahyabhai  <nalin@redhat.com>
+
+       * help.c (ss_help): Don't overflow buffers "buffer" or "buf".
+       * list_rqs.c (ss_list_requests): Don't overflow buffer "buffer".
+       * mk_cmds.c (main): Don't overflow buffer "c_file".
+       * utils.c (generate_rqte): Update lengths of constant strings in
+       computing buffer size.
+
 2000-02-01  Ken Raeburn  <raeburn@mit.edu>
 
        * listen.c (ss_listen): Local var END should be volatile.
index e09b7771589bdbd5b53787bb10c4c9e2d5a0c545..3c9cbec51853ad7c2da94806c5fe8557ea32ea82 100644 (file)
@@ -53,16 +53,18 @@ void ss_help (argc, argv, sci_idx, info_ptr)
        return;
     }
     for (idx = 0; info->info_dirs[idx] != (char *)NULL; idx++) {
-       (void) strcpy(buffer, info->info_dirs[idx]);
-       (void) strcat(buffer, "/");
-       (void) strcat(buffer, argv[1]);
-       (void) strcat(buffer, ".info");
+       (void) strncpy(buffer, info->info_dirs[idx], sizeof(buffer) - 1);
+       buffer[sizeof(buffer) - 1] = '\0';
+       (void) strncat(buffer, "/", sizeof(buffer) - 1 - strlen(buffer));
+       (void) strncat(buffer, argv[1], sizeof(buffer) - 1 - strlen(buffer));
+       (void) strncat(buffer, ".info", sizeof(buffer) - 1 - strlen(buffer));
        if ((fd = open(&buffer[0], O_RDONLY)) >= 0) goto got_it;
     }
     if ((fd = open(&buffer[0], O_RDONLY)) < 0) {
        char buf[MAXPATHLEN];
-       strcpy(buf, "No info found for ");
-       strcat(buf, argv[1]);
+       strncpy(buf, "No info found for ", sizeof(buf) - 1);
+       buf[sizeof(buf) - 1] = '\0';
+       strncat(buf, argv[1], sizeof(buf) - 1 - strlen(buf));
        ss_perror(sci_idx, 0, buf);
        return;
     }
index cf2c9312fd825486678d0ded2998935a5dbba16e..045a0c82bd9b88d3ce13557d75eaf92c15d1e749 100644 (file)
@@ -87,23 +87,24 @@ ss_list_requests(argc, argv, sci_idx, info_ptr)
             buffer[0] = '\0';
             if (entry->flags & SS_OPT_DONT_LIST)
                 continue;
+            buffer[sizeof(buffer) - 1] = '\0';
             for (name = entry->command_names; *name; name++) {
                 register int len = strlen(*name);
-                strncat(buffer, *name, len);
+                strncat(buffer, *name, sizeof(buffer) - 1 - strlen(buffer));
                 spacing += len + 2;
                 if (name[1]) {
-                    strcat(buffer, ", ");
+                    strncat(buffer, ", ", sizeof(buffer) - 1 - strlen(buffer));
                 }
             }
             if (spacing > 23) {
-                strcat(buffer, NL);
+                strncat(buffer, NL, sizeof(buffer) - 1 - strlen(buffer));
                 fputs(buffer, output);
                 spacing = 0;
                 buffer[0] = '\0';
             }
-            strncat(buffer, twentyfive_spaces, 25-spacing);
-            strcat(buffer, entry->info_string);
-            strcat(buffer, NL);
+            strncat(buffer, twentyfive_spaces, sizeof(buffer) - 1 - (25-spacing));
+            strncpy(buffer + 25, entry->info_string, sizeof(buffer) - 1 - 25);
+            strncat(buffer, NL, sizeof(buffer) - 1 - strlen(buffer));
             fputs(buffer, output);
         }
     }
index 0bcd77061a3382b5de855b96655a0e7aee015829..bba5edd2ff88032132395c2acf0b410330aaee35 100644 (file)
@@ -62,8 +62,9 @@ int main(argc, argv)
     p = strrchr(path, '.');
     *p = '\0';
     q = rindex(path, '/');
-    strcpy(c_file, (q) ? q + 1 : path);
-    strcat(c_file, ".c");
+    strncpy(c_file, (q) ? q + 1 : path, sizeof(c_file) - 1);
+    c_file[sizeof(c_file) - 1] = '\0';
+    strncat(c_file, ".c", sizeof(c_file) - 1 - strlen(c_file));
     *p = '.';
 
     output_file = fopen(c_file, "w+");
index 9698e7043f6607e41e47dfb7f05685f994e6ed10..c578001574833cd8207fc5aa4566cd3c6d322ef6 100644 (file)
@@ -61,13 +61,12 @@ char * generate_rqte(func_name, info_string, cmds, options)
     var_name = generate_cmds_string(cmds);
     generate_function_definition(func_name);
     size = 6;          /* "    { " */
-    size += strlen(var_name)+7; /* "quux, " */
-    size += strlen(func_name)+7; /* "foo, " */
-    size += strlen(info_string)+9; /* "\"Info!\", " */
+    size += strlen(var_name)+8; /* "quux, " */
+    size += strlen(func_name)+8; /* "foo, " */
+    size += strlen(info_string)+8; /* "\"Info!\", " */
     sprintf(numbuf, "%d", options);
-    size += strlen(numbuf);
-    size += 4;         /* " }," + NL */
-    string = malloc(size * sizeof(char *));
+    size += strlen(numbuf)+5;          /* " }," + NL + NUL */
+    string = malloc(size);
     strcpy(string, "    { ");
     strcat(string, var_name);
     strcat(string, ",\n      ");