Ignore:
Timestamp:
Mar 24, 2004, 10:23:47 AM (21 years ago)
Author:
sandervl
Message:

VP: GetVolumeInformation: check for file system buffer size

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/kernel32/disk.cpp

    r9304 r10556  
    1 /* $Id: disk.cpp,v 1.39 2002-09-27 14:35:56 sandervl Exp $ */
     1/* $Id: disk.cpp,v 1.40 2004-03-24 09:23:47 sandervl Exp $ */
    22
    33/*
     
    374374            else
    375375            {//pretend everything else is FAT16 (HPFS and FAT have the same file size limit)
    376                 strcpy(lpFileSystemNameBuffer, "FAT16");
     376                // @@VP:20040323 - nFileSystemNameSize may be 0!!!
     377                strncpy(lpFileSystemNameBuffer, "FAT16", nFileSystemNameSize);
    377378            }
    378379            if(fForce2GBFileSize) {
     
    380381                   strcmp(lpFileSystemNameBuffer, "UDF"))
    381382                {//everything is FAT -> 2 GB file size limit
    382                     strcpy(lpFileSystemNameBuffer, "FAT16");
     383                    strncpy(lpFileSystemNameBuffer, "FAT16", nFileSystemNameSize);
    383384                }
    384385            }
     
    478479//******************************************************************************
    479480//******************************************************************************
    480 UINT WIN32API GetLogicalDriveStringsW(UINT nBufferLength, LPWSTR lpBuffer)
    481 {
    482     char *asciibuffer = (char *)malloc(nBufferLength+1);
    483     DWORD rc;
    484 
    485     dprintf(("KERNEL32:  OS2GetLogicalDriveStringsW\n"));
    486 
    487     rc = O32_GetLogicalDriveStrings(nBufferLength, asciibuffer);
    488     if(rc)      AsciiToUnicode(asciibuffer, lpBuffer);
    489     free(asciibuffer);
    490     return(rc);
     481UINT WIN32API GetLogicalDriveStringsW(UINT nBufferLength, LPWSTR lpBufferW)
     482{
     483   LPSTR  lpBufferA = (LPSTR)HeapAlloc( GetProcessHeap(), 0, sizeof(CHAR) * (nBufferLength + 1) );
     484   DWORD   dwResult = GetLogicalDriveStringsA( nBufferLength, lpBufferA );
     485
     486   dprintf(("KERNEL32: GetLogicalDriveStringsW %d %x", nBufferLength, lpBufferA));
     487
     488   if ( dwResult && dwResult <= nBufferLength )
     489        MultiByteToWideChar( CP_ACP, 0, lpBufferA, dwResult + 1, lpBufferW, nBufferLength );
     490
     491   HeapFree( GetProcessHeap(), 0, lpBufferA );
     492
     493   return dwResult;
    491494}
    492495//******************************************************************************
Note: See TracChangeset for help on using the changeset viewer.