svn commit: r300005 - head/usr.bin/ncal
Don Lewis
truckman at FreeBSD.org
Tue May 17 05:05:31 UTC 2016
Author: truckman
Date: Tue May 17 05:05:30 2016
New Revision: 300005
URL: https://svnweb.freebsd.org/changeset/base/300005
Log:
swprintf() and apparently wcsftime() want the their output buffer size
specified in terms of the the number of wide characters and not
sizeof(buffer).
Reported by: Coverity
CID: 1007605, 1007606
MFC after: 1 week
Modified:
head/usr.bin/ncal/ncal.c
Modified: head/usr.bin/ncal/ncal.c
==============================================================================
--- head/usr.bin/ncal/ncal.c Tue May 17 04:53:21 2016 (r300004)
+++ head/usr.bin/ncal/ncal.c Tue May 17 05:05:30 2016 (r300005)
@@ -642,8 +642,8 @@ monthrangeb(int y, int m, int jd_flag, i
wprintf(L"%-*ls ",
mw, wcenter(ws, year[i].name, mw));
else {
- swprintf(ws, sizeof(ws), L"%-ls %d",
- year[i].name, M2Y(m + i));
+ swprintf(ws, sizeof(ws)/sizeof(ws[0]),
+ L"%-ls %d", year[i].name, M2Y(m + i));
wprintf(L"%-*ls ", mw, wcenter(ws1, ws, mw));
}
printf("\n");
@@ -958,7 +958,7 @@ mkweekdays(struct weekdays *wds)
for (i = 0; i != 7; i++) {
tm.tm_wday = (i+1) % 7;
- wcsftime(buf, sizeof(buf), L"%a", &tm);
+ wcsftime(buf, sizeof(buf)/sizeof(buf[0]), L"%a", &tm);
for (len = 2; len > 0; --len) {
if ((width = wcswidth(buf, len)) <= 2)
break;
More information about the svn-src-all
mailing list