* utilvfs.c (is_localized_month): Check "month" for NULL and

forbid punctuation characters in localized month abbreviation.
This commit is contained in:
Andrew V. Samoilov 2005-04-21 10:04:06 +00:00
parent d519f9cbe8
commit c6a4eae10c
2 changed files with 12 additions and 3 deletions

View File

@ -1,3 +1,8 @@
2005-04-21 Andrew V. Samoilov <sav@bcs.zp.ua>
* utilvfs.c (is_localized_month): Check "month" for NULL and
forbid punctuation characters in localized month abbreviation.
2005-04-13 Roland Illig <roland.illig@gmx.de>
* vfs.h: Fixed prototypes for mc_read() and mc_write(). Now they

View File

@ -336,17 +336,21 @@ is_month (const char *str, struct tm *tim)
/*
* Check for possible locale's abbreviated month name (Jan..Dec).
* Any 3 bytes long string without digit and control characters.
* Any 3 bytes long string without digit, control and punctuation characters.
* isalpha() is locale specific, so it cannot be used if current
* locale is "C" and ftp server use Cyrillic.
* TODO: Punctuation characters also cannot be part of month name.
* NB: It is assumed there are no whitespaces in month.
*/
static int
is_localized_month (const unsigned char *month)
{
int i = 0;
while ((i < 3) && *month && !isdigit (*month) && !iscntrl (*month)) {
if (!month)
return 0;
while ((i < 3) && *month && !isdigit (*month) && !iscntrl (*month)
&& !ispunct (*month)) {
i++;
month++;
}