Changeset 3854


Ignore:
Timestamp:
Mar 17, 2014, 6:15:30 AM (11 years ago)
Author:
bird
Message:

opendir: fixed buffer overflow. Fixes #270.

Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/libc-0.6/src/emx/src/lib/misc/dirent.c

    r2515 r3854  
    5757    DIR *                   pdir;
    5858    char *                  psz;
    59     char                    nbuf[MAXPATHLEN+1];
     59    char                    nbuf[MAXPATHLEN+4];
    6060    int                     cchname;
    6161    int                     saved_errno = errno;
     
    6565     */
    6666    cchname = strlen(name);
     67    if (cchname > MAXPATHLEN)
     68    {
     69        errno = ENAMETOOLONG;
     70        LIBCLOG_ERROR_RETURN_P(NULL);
     71    }
    6772    memcpy(nbuf, name, cchname + 1);
    6873    psz = nbuf + cchname;
  • trunk/libc/src/libc/misc/dirent.c

    r2672 r3854  
    5757    DIR *                   pdir;
    5858    char *                  psz;
    59     char                    nbuf[MAXPATHLEN+1];
     59    char                    nbuf[MAXPATHLEN+4];
    6060    int                     cchname;
    6161    int                     saved_errno = errno;
     
    6565     */
    6666    cchname = strlen(name);
     67    if (cchname > MAXPATHLEN)
     68    {
     69        errno = ENAMETOOLONG;
     70        LIBCLOG_ERROR_RETURN_P(NULL);
     71    }
    6772    memcpy(nbuf, name, cchname + 1);
    6873    psz = nbuf + cchname;
Note: See TracChangeset for help on using the changeset viewer.