1234567891011121314151617181920 |
- diff --git a/ext/syck/rubyext.c b/ext/syck/rubyext.c
- index 078de4f..8c4027f 100644
- --- a/ext/syck/rubyext.c
- +++ b/ext/syck/rubyext.c
- @@ -268,9 +268,13 @@ rb_syck_mktime(str, len)
- {
- char padded[] = "000000";
- char *end = ptr + 1;
- + char *p = end;
- while ( isdigit( *end ) ) end++;
- - MEMCPY(padded, ptr + 1, char, end - (ptr + 1));
- - usec = strtol(padded, NULL, 10);
- + if (end - p < sizeof(padded)) {
- + MEMCPY(padded, ptr + 1, char, end - (ptr + 1));
- + p = padded;
- + }
- + usec = strtol(p, NULL, 10);
- }
- else
- {
|