[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[or-cvs] [tor/master] Fix compile wanrings revealed by gcc 4.5 on mingw



Author: Sebastian Hahn <sebastian@xxxxxxxxxxxxxx>
Date: Sun, 26 Dec 2010 12:13:47 +0100
Subject: Fix compile wanrings revealed by gcc 4.5 on mingw
Commit: 9ecf133686c8907baec2292ca612ee11aa18406e

---
 changes/bug2314      |    4 ++++
 src/common/crypto.c  |    3 ++-
 src/or/cpuworker.c   |    2 +-
 src/or/eventdns.c    |    8 +++++---
 src/or/ntmain.c      |    6 +++---
 src/test/test_util.c |    1 +
 6 files changed, 16 insertions(+), 8 deletions(-)
 create mode 100644 changes/bug2314

diff --git a/changes/bug2314 b/changes/bug2314
new file mode 100644
index 0000000..41a2328
--- /dev/null
+++ b/changes/bug2314
@@ -0,0 +1,4 @@
+  o Minor bugfixes:
+    - Fix a bunch of compile warnings revealed by mingw with gcc 4.5. Fixes
+      bug 2314.
+
diff --git a/src/common/crypto.c b/src/common/crypto.c
index e030c56..52bd365 100644
--- a/src/common/crypto.c
+++ b/src/common/crypto.c
@@ -1959,14 +1959,15 @@ seed_weak_rng(void)
 int
 crypto_seed_rng(int startup)
 {
-  char buf[ADD_ENTROPY];
   int rand_poll_status = 0;
 
   /* local variables */
 #ifdef MS_WINDOWS
+  unsigned char buf[ADD_ENTROPY];
   static int provider_set = 0;
   static HCRYPTPROV provider;
 #else
+  char buf[ADD_ENTROPY];
   static const char *filenames[] = {
     "/dev/srandom", "/dev/urandom", "/dev/random", NULL
   };
diff --git a/src/or/cpuworker.c b/src/or/cpuworker.c
index ae8d69f..fecad14 100644
--- a/src/or/cpuworker.c
+++ b/src/or/cpuworker.c
@@ -250,7 +250,7 @@ cpuworker_main(void *data)
   for (;;) {
     ssize_t r;
 
-    if ((r = recv(fd, &question_type, 1, 0)) != 1) {
+    if ((r = recv(fd, (void *)&question_type, 1, 0)) != 1) {
 //      log_fn(LOG_ERR,"read type failed. Exiting.");
       if (r == 0) {
         log_info(LD_OR,
diff --git a/src/or/eventdns.c b/src/or/eventdns.c
index b929303..75a25bd 100644
--- a/src/or/eventdns.c
+++ b/src/or/eventdns.c
@@ -1245,7 +1245,8 @@ nameserver_read(struct nameserver *ns) {
 
 	for (;;) {
 		const int r =
-            (int)recvfrom(ns->socket, packet, (socklen_t)sizeof(packet), 0,
+            (int)recvfrom(ns->socket, (void*)packet,
+						  (socklen_t)sizeof(packet), 0,
 						  sa, &addrlen);
 		if (r < 0) {
 			int err = last_error(ns->socket);
@@ -1276,7 +1277,7 @@ server_port_read(struct evdns_server_port *s) {
 
 	for (;;) {
 		addrlen = (socklen_t)sizeof(struct sockaddr_storage);
-		r = recvfrom(s->socket, packet, sizeof(packet), 0,
+		r = recvfrom(s->socket, (void*)packet, sizeof(packet), 0,
 					 (struct sockaddr*) &addr, &addrlen);
 		if (r < 0) {
 			int err = last_error(s->socket);
@@ -2012,7 +2013,8 @@ evdns_request_timeout_callback(int fd, short events, void *arg) {
 /* 2 other failure */
 static int
 evdns_request_transmit_to(struct evdns_request *req, struct nameserver *server) {
-	const ssize_t r = send(server->socket, req->request, req->request_len, 0);
+	const ssize_t r = send(server->socket, (void*)req->request,
+                         req->request_len, 0);
 	if (r < 0) {
 		int err = last_error(server->socket);
 		if (error_is_eagain(err)) return 1;
diff --git a/src/or/ntmain.c b/src/or/ntmain.c
index 46e7afb..984acc7 100644
--- a/src/or/ntmain.c
+++ b/src/or/ntmain.c
@@ -518,7 +518,7 @@ nt_service_install(int argc, char **argv)
   SERVICE_DESCRIPTIONA sdBuff;
   char *command;
   char *errmsg;
-  const char *user_acct = GENSRV_USERACCT;
+  const char *user_acct = NULL;
   const char *password = "";
   int i;
   OSVERSIONINFOEX info;
@@ -562,13 +562,12 @@ nt_service_install(int argc, char **argv)
       is_win2k_or_worse = 1;
   }
 
-  if (user_acct == GENSRV_USERACCT) {
+  if (!user_acct) {
     if (is_win2k_or_worse) {
       /* On Win2k, there is no LocalService account, so we actually need to
        * fall back on NULL (the system account). */
       printf("Running on Win2K or earlier, so the LocalService account "
              "doesn't exist.  Falling back to SYSTEM account.\n");
-      user_acct = NULL;
     } else {
       /* Genericity is apparently _so_ last year in Redmond, where some
        * accounts are accounts that you can look up, and some accounts
@@ -577,6 +576,7 @@ nt_service_install(int argc, char **argv)
        */
       printf("Running on a Post-Win2K OS, so we'll assume that the "
              "LocalService account exists.\n");
+      user_acct = GENSRV_USERACCT;
     }
   } else if (0 && service_fns.LookupAccountNameA_fn(NULL, // On this system
                             user_acct,
diff --git a/src/test/test_util.c b/src/test/test_util.c
index a14d548..d28fc9c 100644
--- a/src/test/test_util.c
+++ b/src/test/test_util.c
@@ -1200,6 +1200,7 @@ static void
 test_util_load_win_lib(void *ptr)
 {
   HANDLE h = load_windows_system_library("advapi32.dll");
+  (void) ptr;
 
   tt_assert(h);
  done:
-- 
1.7.1