diff options
| author | Chong Yidong | 2008-01-22 15:36:05 +0000 |
|---|---|---|
| committer | Chong Yidong | 2008-01-22 15:36:05 +0000 |
| commit | cc8ce247d5c81de71d4d744be86342d729a17c65 (patch) | |
| tree | ede4fc8a4823f44c7ec16dfb8375669a726e0cf7 /lib-src | |
| parent | 8f4dc101ae41e11eb8a23241f2d9b3ee6d56001a (diff) | |
| download | emacs-cc8ce247d5c81de71d4d744be86342d729a17c65.tar.gz emacs-cc8ce247d5c81de71d4d744be86342d729a17c65.zip | |
(pop_stat, pop_last): Fix last fix.
Diffstat (limited to 'lib-src')
| -rw-r--r-- | lib-src/pop.c | 15 |
1 files changed, 4 insertions, 11 deletions
diff --git a/lib-src/pop.c b/lib-src/pop.c index 5dc5de75583..7b9b191add7 100644 --- a/lib-src/pop.c +++ b/lib-src/pop.c | |||
| @@ -381,25 +381,18 @@ pop_stat (server, count, size) | |||
| 381 | errno = 0; | 381 | errno = 0; |
| 382 | *count = strtol (&fromserver[4], &end_ptr, 10); | 382 | *count = strtol (&fromserver[4], &end_ptr, 10); |
| 383 | /* Check validity of string-to-integer conversion. */ | 383 | /* Check validity of string-to-integer conversion. */ |
| 384 | if (fromserver[4] == 0 || *end_ptr != 0 || errno) | 384 | if (fromserver + 4 == end_ptr || *end_ptr != ' ' || errno) |
| 385 | { | 385 | { |
| 386 | strcpy (pop_error, "Unexpected response from POP server in pop_stat"); | 386 | strcpy (pop_error, "Unexpected response from POP server in pop_stat"); |
| 387 | pop_trash (server); | 387 | pop_trash (server); |
| 388 | return (-1); | 388 | return (-1); |
| 389 | } | 389 | } |
| 390 | 390 | ||
| 391 | fromserver = index (&fromserver[4], ' '); | 391 | fromserver = end_ptr; |
| 392 | if (! fromserver) | ||
| 393 | { | ||
| 394 | strcpy (pop_error, | ||
| 395 | "Badly formatted response from server in pop_stat"); | ||
| 396 | pop_trash (server); | ||
| 397 | return (-1); | ||
| 398 | } | ||
| 399 | 392 | ||
| 400 | errno = 0; | 393 | errno = 0; |
| 401 | *size = strtol (fromserver + 1, &end_ptr, 10); | 394 | *size = strtol (fromserver + 1, &end_ptr, 10); |
| 402 | if (*(fromserver + 1) == 0 || *end_ptr != 0 || errno) | 395 | if (fromserver + 1 == end_ptr || errno) |
| 403 | { | 396 | { |
| 404 | strcpy (pop_error, "Unexpected response from POP server in pop_stat"); | 397 | strcpy (pop_error, "Unexpected response from POP server in pop_stat"); |
| 405 | pop_trash (server); | 398 | pop_trash (server); |
| @@ -933,7 +926,7 @@ pop_last (server) | |||
| 933 | int count; | 926 | int count; |
| 934 | errno = 0; | 927 | errno = 0; |
| 935 | count = strtol (&fromserver[4], &end_ptr, 10); | 928 | count = strtol (&fromserver[4], &end_ptr, 10); |
| 936 | if (fromserver[4] == 0 || *end_ptr != 0 || errno) | 929 | if (fromserver + 4 == end_ptr || errno) |
| 937 | { | 930 | { |
| 938 | strcpy (pop_error, "Unexpected response from server in pop_last"); | 931 | strcpy (pop_error, "Unexpected response from server in pop_last"); |
| 939 | pop_trash (server); | 932 | pop_trash (server); |