Tim Bunce wrote:

> On Thu, Jul 15, 2004 at 10:35:14AM +0200, Steffen Goeldner wrote:
> > Tim Bunce wrote:
> >
> >   Warning W8075 dbdimp.c 82: Suspicious pointer conversion in function 
> > GetEnvOrRegKey
>
> Fixed.

I'm still a bit nervous about returning this pointer to a locally declared
buffer.

> >   Warning W8075 dbdimp.c 94: Suspicious pointer conversion in function GetRegKey
>
> Not sure what that one is - I don't speak Windows API.

FTR:

  windef.h:

    #define far
    typedef unsigned char       BYTE;
    typedef unsigned long       DWORD;
    typedef BYTE far            *LPBYTE;
    typedef DWORD far           *LPDWORD;

  winnt.h:

    typedef char CHAR;
    typedef const CHAR *LPCSTR, *PCSTR;

  winreg.h:

    WINADVAPI
    LONG
    APIENTRY
    RegQueryValueExA (
      IN     HKEY    hKey,
      IN     LPCSTR  lpValueName,
      IN     LPDWORD lpReserved,
         OUT LPDWORD lpType,
      IN OUT LPBYTE  lpData,
      IN OUT LPDWORD lpcbData
    );

    #ifdef UNICODE
    #define RegQueryValueEx  RegQueryValueExW
    #else
    #define RegQueryValueEx  RegQueryValueExA
    #endif // !UNICODE


Thus, I would adjust the types as follows:


--- dbdimp.orig Thu Jul 15 14:14:22 2004
+++ dbdimp.c    Fri Jul 16 07:32:26 2004
@@ -82,10 +82,10 @@
     return &val[0];
 }
 static int
-GetRegKey(char *key, char *val, char *data, int *size)
+GetRegKey(char *key, char *val, char *data, unsigned long *size)
 {
     HKEY hKey;
-    long len = *size - 1;
+    unsigned long len = *size - 1;
     long ret;

     ret = RegOpenKeyEx(HKEY_LOCAL_MACHINE, key, 0, KEY_QUERY_VALUE, &hKey);



Steffen

Reply via email to