Ignore:
Timestamp:
Sep 28, 1999, 3:27:12 PM (26 years ago)
Author:
sandervl
Message:

GetComputerNameA bugfix

File:
1 edited

Legend:

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

    r400 r1081  
    1616
    1717//******************************************************************************
     18// GetComputerName
     19//
     20// Retrieve the NetBIOS name of the computer
    1821//******************************************************************************
    19 BOOL WIN32API GetComputerNameA(LPSTR name, LPDWORD size)
     22BOOL WIN32API GetComputerNameA(LPSTR lpBuffer, LPDWORD nSize)
    2023{
    21   char *szHostname;
    22   char szDefault[]="NONAME";
    23   int  cbSize;
    24  
    25   szHostname=getenv("HOSTNAME");
     24    char szDefault[] = "NONAME";
     25    char * szHostname = getenv("HOSTNAME");     // This is wrong;
     26                                                // We should use NETBIOS computername
    2627
    27   if (!szHostname) szHostname=szDefault;
    28      
    29   if (name) strncpy(name,szHostname,*size);
     28    if (!szHostname)    // Hostname not set; assume a default
     29        szHostname = szDefault;
    3030
    31   *size=strlen(name); 
     31    *nSize = min(strlen(szHostname) + 1, *nSize);       // Truncate name as reqd.
     32                                                // NB W95/98 would generate a
     33                                                // BUFFER_OVERFLOW error here
    3234
    33   dprintf(("KERNEL32 GetComputerNameA: %s (size %d)",name,*size));
     35    if (lpBuffer)
     36    {
     37        strncpy(lpBuffer, szHostname, *nSize - 1);      // Copy back name.
     38        lpBuffer[*nSize - 1] = 0;               // Ensure terminated.
     39    }
    3440
    35   return TRUE;
     41    dprintf(("KERNEL32: GetComputerNameA (Name: %.*s, nSize: %d)", *nSize, lpBuffer, *nSize));
     42
     43    return TRUE;
    3644}
    3745//******************************************************************************
Note: See TracChangeset for help on using the changeset viewer.