Lines 271-276
void common_options(int ch)
Link Here
|
271 |
errno = 0; |
271 |
errno = 0; |
272 |
dbl = strtod(optarg, &ep); |
272 |
dbl = strtod(optarg, &ep); |
273 |
|
273 |
|
|
|
274 |
if (errno || *ep != '\0') { |
275 |
char *saved_locale; |
276 |
int saved_errno; |
277 |
saved_locale = strdup(setlocale(LC_NUMERIC, NULL)); |
278 |
setlocale(LC_NUMERIC, "C"); |
279 |
|
280 |
errno = 0; |
281 |
dbl = strtod(optarg, &ep); |
282 |
saved_errno = errno; |
283 |
|
284 |
setlocale(LC_NUMERIC, saved_locale); |
285 |
free(saved_locale); |
286 |
errno = saved_errno; |
287 |
} |
288 |
|
274 |
if (errno || *ep != '\0' || |
289 |
if (errno || *ep != '\0' || |
275 |
!finite(dbl) || dbl < 0.0 || dbl >= (double)INT_MAX / 1000 - 1.0) { |
290 |
!finite(dbl) || dbl < 0.0 || dbl >= (double)INT_MAX / 1000 - 1.0) { |
276 |
fprintf(stderr, "ping: bad timing interval\n"); |
291 |
fprintf(stderr, "ping: bad timing interval\n"); |