Changeset 967


Ignore:
Timestamp:
Feb 20, 2008, 11:55:17 PM (18 years ago)
Author:
John Small
Message:

Changed xDosSetPathInfo so that it always copies the buffer to a local
(stack) so that it would never cross a 64K boundary. This seems to fix
the problem described in ticket 228.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/dll/wrappers.c

    r963 r967  
    215215    switch (ulInfoLevel) {
    216216      case FIL_STANDARD:
    217         rc = DosSetPathInfo(pszPathName, ulInfoLevel, pInfoBuf, cbInfoBuf, flOptions);
    218         if (rc == ERROR_INVALID_NAME) {
    219           // fixme to validate counts?
    220           fs3 = *(PFILESTATUS3)pInfoBuf;        // Copy to buffer that does not cross
    221           rc = DosSetPathInfo(pszPathName, ulInfoLevel, &fs3, sizeof(fs3), flOptions);
    222         }
     217        fs3 = *(PFILESTATUS3)pInfoBuf;  // Copy to buffer that does not cross 64K boundary
     218        rc = DosSetPathInfo(pszPathName, ulInfoLevel, &fs3, cbInfoBuf, flOptions);
    223219        break;
    224220
Note: See TracChangeset for help on using the changeset viewer.