pull up r25367 from trunk
authorTom Yu <tlyu@mit.edu>
Thu, 20 Oct 2011 19:27:32 +0000 (19:27 +0000)
committerTom Yu <tlyu@mit.edu>
Thu, 20 Oct 2011 19:27:32 +0000 (19:27 +0000)
 ------------------------------------------------------------------------
 r25367 | ghudson | 2011-10-18 12:32:28 -0400 (Tue, 18 Oct 2011) | 12 lines

 ticket: 6980
 subject: Ensure termination in Windows vsnprintf wrapper
 target_version: 1.10
 tags: pullup

 The Windows _vsnprintf does not terminate its output buffer in the
 overflow case.  Make sure we do that in the wrapper.  Reported by
 Chris Hecker.

 (Not an issue for KfW 3.2 since we weren't using snprintf in 1.6.x
 except in Unix-specific code.)

ticket: 6980
version_fixed: 1.10
status: resolved

git-svn-id: svn://anonsvn.mit.edu/krb5/branches/krb5-1-10@25386 dc483132-0cff-0310-8789-dd5450dbe970

src/include/k5-platform.h

index 77d710b499a388be42a1258b03283470b7863e3a..d1896e7f8f156180d430a433491598cf70d54b38 100644 (file)
@@ -958,8 +958,10 @@ vsnprintf(char *str, size_t size, const char *format, va_list args)
     va_copy(args_copy, args);
     length = _vscprintf(format, args_copy);
     va_end(args_copy);
-    if (size)
+    if (size > 0) {
         _vsnprintf(str, size, format, args);
+        str[size - 1] = '\0';
+    }
     return length;
 }
 static inline int