summaryrefslogtreecommitdiff
path: root/hwpfilter
diff options
context:
space:
mode:
authorNorbert Thiebaud <nthiebaud@gmail.com>2014-07-05 22:22:38 +0200
committerNorbert Thiebaud <nthiebaud@gmail.com>2014-07-05 22:41:11 +0200
commit54bf6b1205b0f0e02554ceb4cff3b50f67cc8eee (patch)
tree11eccfd1e9a6001ec897798d3c2a75a32a9d7e1c /hwpfilter
parentecdf4e2b90d664655f3cee1364b38218492e9ea6 (diff)
coverity#983491 String Overflow
Change-Id: Ic634f183a531c1ecda61b31a0883934bd7842dcc
Diffstat (limited to 'hwpfilter')
-rw-r--r--hwpfilter/source/hbox.cxx190
1 files changed, 95 insertions, 95 deletions
diff --git a/hwpfilter/source/hbox.cxx b/hwpfilter/source/hbox.cxx
index 006dc4c7aa0e..ca1b2a9f9466 100644
--- a/hwpfilter/source/hbox.cxx
+++ b/hwpfilter/source/hbox.cxx
@@ -170,112 +170,112 @@ hchar_string DateCode::GetString()
switch (*fmt)
{
- case '0':
- add_zero = true;
+ case '0':
+ add_zero = true;
+ break;
+ case '1':
+ num = date[YEAR];
+ form = "%04d";
+ break;
+ case '!':
+ num = date[YEAR] % 100;
+ break;
+ case '2':
+ num = date[MONTH];
+ break;
+ case '@':
+ memcpy(cbuf, eng_mon + (date[MONTH] - 1) * 3, 3);
+ cbuf[3] = '.';
+ cbuf[4] = 0;
break;
- case '1':
- num = date[YEAR];
- form = "%04d";
- break;
- case '!':
- num = date[YEAR] % 100;
- break;
- case '2':
- num = date[MONTH];
- break;
- case '@':
- memcpy(cbuf, eng_mon + (date[MONTH] - 1) * 3, 3);
- cbuf[3] = '.';
- cbuf[4] = 0;
- break;
- case '*':
- strcpy(cbuf, en_mon[date[MONTH] - 1]);
- break;
- case '3': /* 'D' is day of korean */
- num = date[DAY];
- break;
- case '#':
- num = date[DAY];
- switch (date[DAY] % 10)
- {
- case 1:
- form = "%dst";
- break;
- case 2:
- form = "%dnd";
- break;
- case 3:
- form = "%drd";
- break;
- default:
- form = "%dth";
- break;
- }
- break;
- case '4':
- num = date[HOUR] - ((date[HOUR] > 12) ? 12 : 0);
- break;
- case '$':
- num = date[HOUR];
- break;
- case '5':
- case '%':
- num = date[MIN];
- break;
- case '6':
- ret.push_back(kor_week[date[WEEK]]);
- break;
- case '^':
- memcpy(cbuf, eng_week + date[WEEK] * 3, 3);
- cbuf[3] = '.';
- cbuf[4] = 0;
- break;
- case '_':
- strcpy(cbuf, en_week[date[WEEK]]);
+ case '*':
+ strncat(cbuf, en_mon[date[MONTH] - 1], 256);
+ break;
+ case '3': /* 'D' is day of korean */
+ num = date[DAY];
+ break;
+ case '#':
+ num = date[DAY];
+ switch (date[DAY] % 10)
+ {
+ case 1:
+ form = "%dst";
break;
- case '7':
- ret.push_back(0xB5A1);
- ret.push_back((is_pm) ? 0xD281 : 0xB8E5);
+ case 2:
+ form = "%dnd";
break;
- case '&':
- strcpy(cbuf, (is_pm) ? "p.m." : "a.m.");
+ case 3:
+ form = "%drd";
break;
- case '+':
- strcpy(cbuf, (is_pm) ? "P.M." : "A.M.");
+ default:
+ form = "%dth";
break;
- case '8': // 2.5 feature
- case '9':
+ }
+ break;
+ case '4':
+ num = date[HOUR] - ((date[HOUR] > 12) ? 12 : 0);
+ break;
+ case '$':
+ num = date[HOUR];
+ break;
+ case '5':
+ case '%':
+ num = date[MIN];
+ break;
+ case '6':
+ ret.push_back(kor_week[date[WEEK]]);
+ break;
+ case '^':
+ memcpy(cbuf, eng_week + date[WEEK] * 3, 3);
+ cbuf[3] = '.';
+ cbuf[4] = 0;
+ break;
+ case '_':
+ strncat(cbuf, en_week[date[WEEK]], 256);
+ break;
+ case '7':
+ ret.push_back(0xB5A1);
+ ret.push_back((is_pm) ? 0xD281 : 0xB8E5);
+ break;
+ case '&':
+ strncat(cbuf, (is_pm) ? "p.m." : "a.m.", 256);
+ break;
+ case '+':
+ strncat(cbuf, (is_pm) ? "P.M." : "A.M.", 256);
+ break;
+ case '8': // 2.5 feature
+ case '9':
#if 0
// LATER
- mkcurfilename(cbuf, *fmt);
- for (i = 0; cbuf[i] != 0 && slen > 1; i++)
- { //for hangle filename
- if (cbuf[i] & 0x80 && cbuf[i + 1] != 0)
- {
- *d++ = (cbuf[i] << 8) | cbuf[i + 1];
- i++;
- }
- else
- *d++ = cbuf[i];
- slen--;
+ mkcurfilename(cbuf, *fmt);
+ for (i = 0; cbuf[i] != 0 && slen > 1; i++)
+ { //for hangle filename
+ if (cbuf[i] & 0x80 && cbuf[i + 1] != 0)
+ {
+ *d++ = (cbuf[i] << 8) | cbuf[i + 1];
+ i++;
}
+ else
+ *d++ = cbuf[i];
+ slen--;
+ }
#endif
- cbuf[0] = 0;
+ cbuf[0] = 0;
+ break;
+ case '~': // 3.0b feature
+ if (fmt[1] == 0)
break;
- case '~': // 3.0b feature
- if (fmt[1] == 0)
- break;
- fmt++;
- if (*fmt == '6')
- {
- ret.push_back(china_week[date[WEEK]]);
- break;
- }
+ fmt++;
+ if (*fmt == '6')
+ {
+ ret.push_back(china_week[date[WEEK]]);
break;
- default:
- if (*fmt == '\\' && *++fmt == 0)
- goto done;
- ret.push_back(*fmt);
+ }
+ break;
+ default:
+ if (*fmt == '\\' && *++fmt == 0)
+ goto done;
+ ret.push_back(*fmt);
}
if (num != -1)
sprintf(cbuf, form, num);