diff options
| author | sebres <sebres@users.sourceforge.net> | 2017-05-11 18:53:21 (GMT) |
|---|---|---|
| committer | sebres <sebres@users.sourceforge.net> | 2017-05-11 18:53:21 (GMT) |
| commit | 5171d6b4effacccb8228f0848f8d6056254f85ee (patch) | |
| tree | 7871ca975e33745ffa98d6cc3746e915a61fce21 /generic/tclBinary.c | |
| parent | 279bfdeef3577e9767bfafc7102011176f88034f (diff) | |
| parent | 2130fd858277aa77aa78b99690c412e99b04cd66 (diff) | |
| download | tcl-5171d6b4effacccb8228f0848f8d6056254f85ee.zip tcl-5171d6b4effacccb8228f0848f8d6056254f85ee.tar.gz tcl-5171d6b4effacccb8228f0848f8d6056254f85ee.tar.bz2 | |
merge trunk (to sebres-trunk-timerate)
Diffstat (limited to 'generic/tclBinary.c')
| -rw-r--r-- | generic/tclBinary.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/generic/tclBinary.c b/generic/tclBinary.c index a3e5071..72f1498 100644 --- a/generic/tclBinary.c +++ b/generic/tclBinary.c @@ -1743,7 +1743,15 @@ GetFormatSpec( (*formatPtr)++; *countPtr = BINARY_ALL; } else if (isdigit(UCHAR(**formatPtr))) { /* INTL: digit */ - *countPtr = strtoul(*formatPtr, (char **) formatPtr, 10); + unsigned long int count; + + errno = 0; + count = strtoul(*formatPtr, (char **) formatPtr, 10); + if (errno || (count > (unsigned long) INT_MAX)) { + *countPtr = INT_MAX; + } else { + *countPtr = (int) count; + } } else { *countPtr = BINARY_NOCOUNT; } |
