From 25e52cb4983adefb74e2a664ce5b36c1822c5cd5 Mon Sep 17 00:00:00 2001 From: dkulwin Date: Wed, 4 Nov 2015 18:34:13 -0600 Subject: [PATCH] Add prototypes for functions returning pointers and modify how some arrays are defined Functions not declared before use, are define as returning an int. Under 64-bit this can result in corrupted pointers being returned. Also, Visual studio doesn't like it when you use variables to declare array sizes, static values always work though. --- contrib/win32/win32compat/pwd.c | 2 ++ readpass.c | 2 +- serverloop.c | 4 ++++ session.c | 4 +++- 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/contrib/win32/win32compat/pwd.c b/contrib/win32/win32compat/pwd.c index 7ae3f01..336dc1c 100644 --- a/contrib/win32/win32compat/pwd.c +++ b/contrib/win32/win32compat/pwd.c @@ -43,6 +43,8 @@ #include "homedirhelp.h" +char *GetHomeDirFromToken(char *userName, HANDLE token); + uid_t getuid(void) { return 0; diff --git a/readpass.c b/readpass.c index 10486e5..e19c191 100644 --- a/readpass.c +++ b/readpass.c @@ -146,7 +146,7 @@ ssh_askpass(char *askpass, const char *msg) int length = 8192; - CHAR command[length]; + CHAR command[8192]; char *pass = NULL; diff --git a/serverloop.c b/serverloop.c index 2c631f4..2895d07 100644 --- a/serverloop.c +++ b/serverloop.c @@ -824,6 +824,10 @@ server_loop(pid_t pid, int fdin_arg, int fdout_arg, int fderr_arg) /* NOTREACHED */ } +#ifdef WIN32_FIXME +Session * session_get(int *); +#endif + static void collect_children(void) { diff --git a/session.c b/session.c index 8cd6124..57b963a 100644 --- a/session.c +++ b/session.c @@ -105,6 +105,8 @@ #include "sftp.h" #ifdef WIN32_FIXME + +char *GetHomeDirFromToken(char *userName, HANDLE token); /* FIXME: GFPZR: Function stat() may be undeclared. */ @@ -873,7 +875,7 @@ do_exec_no_pty(Session *s, const char *command) DWORD size = 256; - char name[size]; + char name[256]; GetUserName(name, &size);