]> git.ipfire.org Git - thirdparty/dbus.git/commitdiff
Fixes to the nonce code
authorFrank Osterfeld <frank@kdab.net>
Wed, 21 Oct 2009 17:45:24 +0000 (20:45 +0300)
committerRalf Habacker <ralf.habacker@freenet.de>
Tue, 1 Dec 2009 07:43:45 +0000 (08:43 +0100)
Cherry-picked from commit f9bc0f4bd036f6ede5d9850fb0f8587178c85f44 in
the dbus4win repository, slightly massaged to apply by tml@iki.fi.

cmake/dbus/CMakeLists.txt
dbus/dbus-nonce.c
dbus/dbus-server-socket.c
dbus/dbus-sysdeps-unix.c
dbus/dbus-sysdeps-util-unix.c
dbus/dbus-sysdeps-util-win.c
dbus/dbus-sysdeps-win.c
dbus/dbus-sysdeps-win.h
dbus/dbus-sysdeps.h
dbus/dbus-transport-socket.c

index c1c22512930b3c302d03fb0de8853f94cdb18e67..187d48d17484980cb2a4707529e3f6f66bf56c21 100644 (file)
@@ -186,20 +186,20 @@ if (WIN32)
        set (DBUS_SHARED_SOURCES ${DBUS_SHARED_SOURCES} 
                ${DBUS_DIR}/dbus-sysdeps-win.c
                ${DBUS_DIR}/dbus-sysdeps-thread-win.c
-               ${DBUS_DIR}/dbus-sysdeps-util-win.c
                ${DBUS_DIR}/dbus-spawn-win.c
        )
        set (DBUS_SHARED_HEADERS ${DBUS_SHARED_HEADERS} 
                ${DBUS_DIR}/dbus-sockets-win.h
                ${DBUS_DIR}/dbus-sysdeps-win.h
        )
+       set (DBUS_UTIL_SOURCES ${DBUS_UTIL_SOURCES}
+               ${DBUS_DIR}/dbus-sysdeps-util-win.c
+       )
        set (LIBS ${LIBS} ws2_32 advapi32 netapi32)
-
 else (WIN32)
        set (DBUS_SHARED_SOURCES ${DBUS_SHARED_SOURCES} 
                ${DBUS_DIR}/dbus-sysdeps-unix.c
                ${DBUS_DIR}/dbus-sysdeps-pthread.c
-               ${DBUS_DIR}/dbus-sysdeps-util-unix.c
                ${DBUS_DIR}/dbus-spawn.c
                ${DBUS_DIR}/dbus-userdb.c
        )
@@ -211,6 +211,7 @@ else (WIN32)
        )
        set (DBUS_UTIL_SOURCES ${DBUS_UTIL_SOURCES}
                ${DBUS_DIR}/dbus-userdb-util.c
+               ${DBUS_DIR}/dbus-sysdeps-util-unix.c
        )
 endif (WIN32)
 
index 192c5101ca109bc2748709627215313b1a3dd734..8385340feb0d4da73a44cdf027623ea10f63b202 100644 (file)
@@ -51,7 +51,7 @@ do_check_nonce (int fd, const DBusString *nonce, DBusError *error)
         dbus_set_error (error, DBUS_ERROR_NO_MEMORY, NULL);
         _dbus_string_free (&p);
         _dbus_string_free (&buffer);
-        return;
+        return FALSE;
       }
 
   while (nleft)
@@ -105,9 +105,10 @@ _dbus_read_nonce (const DBusString *fname, DBusString *nonce, DBusError* error)
 {
   FILE *fp;
   char buffer[17];
-  buffer[sizeof buffer - 1] = '\0';
   size_t nread;
 
+  buffer[sizeof buffer - 1] = '\0';
+
   _DBUS_ASSERT_ERROR_IS_CLEAR (error);
 
   _dbus_verbose ("reading nonce from file: %s\n", _dbus_string_get_const_data (fname));
@@ -355,6 +356,7 @@ _dbus_noncefile_delete (DBusNonceFile *noncefile,
     _dbus_delete_file (&noncefile->path, error);
     _dbus_string_free (&noncefile->dir);
     _dbus_string_free (&noncefile->path);
+    return TRUE;
 }
 
 #else
@@ -389,6 +391,7 @@ _dbus_noncefile_delete (DBusNonceFile *noncefile,
     _dbus_delete_directory (&noncefile->dir, error);
     _dbus_string_free (&noncefile->dir);
     _dbus_string_free (&noncefile->path);
+    return TRUE;
 }
 #endif
 
index 92064ef1266a48ee5c9d1e276d37f68686490f31..c89189d6169fe1d0c73699fbb0544048d96581a1 100644 (file)
@@ -25,6 +25,7 @@
 #include "dbus-server-socket.h"
 #include "dbus-transport-socket.h"
 #include "dbus-connection-internal.h"
+#include "dbus-memory.h"
 #include "dbus-nonce.h"
 #include "dbus-string.h"
 
@@ -339,7 +340,7 @@ _dbus_server_new_for_socket (int              *fds,
 
  failed_3:
   _dbus_noncefile_delete (socket_server->noncefile, NULL);
-  _dbus_free (socket_server->noncefile );
+  dbus_free (socket_server->noncefile );
  failed_2:
   for (i = 0 ; i < n_fds ; i++)
     {
index 26c3aab426eb2073c544724e753f877ab7047ac9..91f8a35cd5d906f6cec57bb2bdaf9c2f0c67b0c5 100644 (file)
@@ -34,6 +34,7 @@
 #include "dbus-userdb.h"
 #include "dbus-list.h"
 #include "dbus-credentials.h"
+#include "dbus-nonce.h"
 
 #include <sys/types.h>
 #include <stdlib.h>
@@ -3908,6 +3909,34 @@ _dbus_get_is_errno_eagain_or_ewouldblock (void)
   return errno == EAGAIN || errno == EWOULDBLOCK;
 }
 
+/**
+ * Removes a directory; Directory must be empty
+ *
+ * @param filename directory filename
+ * @param error initialized error object
+ * @returns #TRUE on success
+ */
+dbus_bool_t
+_dbus_delete_directory (const DBusString *filename,
+                        DBusError        *error)
+{
+  const char *filename_c;
+
+  _DBUS_ASSERT_ERROR_IS_CLEAR (error);
+
+  filename_c = _dbus_string_get_const_data (filename);
+
+  if (rmdir (filename_c) != 0)
+    {
+      dbus_set_error (error, DBUS_ERROR_FAILED,
+                      "Failed to remove directory %s: %s\n",
+                      filename_c, _dbus_strerror (errno));
+      return FALSE;
+    }
+
+  return TRUE;
+}
+
 /**
  *  Checks whether file descriptors may be passed via the socket
  *
index 9fa27a1ac2fa75d35428b3608e00deb3a4887e41..d969d0a097c26ddb9d5dde4a61c8e4009c9b1946 100644 (file)
@@ -509,35 +509,6 @@ _dbus_set_signal_handler (int               sig,
   sigaction (sig,  &act, NULL);
 }
 
-
-/**
- * Removes a directory; Directory must be empty
- * 
- * @param filename directory filename
- * @param error initialized error object
- * @returns #TRUE on success
- */
-dbus_bool_t
-_dbus_delete_directory (const DBusString *filename,
-                       DBusError        *error)
-{
-  const char *filename_c;
-  
-  _DBUS_ASSERT_ERROR_IS_CLEAR (error);
-
-  filename_c = _dbus_string_get_const_data (filename);
-
-  if (rmdir (filename_c) != 0)
-    {
-      dbus_set_error (error, DBUS_ERROR_FAILED,
-                     "Failed to remove directory %s: %s\n",
-                     filename_c, _dbus_strerror (errno));
-      return FALSE;
-    }
-  
-  return TRUE;
-}
-
 /** Checks if a file exists
 *
 * @param file full path to the file
index e73dcbfb0574d8735657712d6e2a369d458be066..fe277e4a2ababc47e2de539608995b7dd1b2ed38 100644 (file)
@@ -326,34 +326,6 @@ out0:
 #endif //DBUS_WINCE
 }
 
-/**
- * Removes a directory; Directory must be empty
- * 
- * @param filename directory filename
- * @param error initialized error object
- * @returns #TRUE on success
- */
-dbus_bool_t
-_dbus_delete_directory (const DBusString *filename,
-                        DBusError        *error)
-{
-  const char *filename_c;
-
-  _DBUS_ASSERT_ERROR_IS_CLEAR (error);
-
-  filename_c = _dbus_string_get_const_data (filename);
-
-  if (_rmdir (filename_c) != 0)
-    {
-      dbus_set_error (error, DBUS_ERROR_FAILED,
-                      "Failed to remove directory %s: %s\n",
-                      filename_c, strerror (errno));
-      return FALSE;
-    }
-
-  return TRUE;
-}
-
 void
 _dbus_init_system_log (void)
 {
index f80bfd417dbe985d86a0dd9eeea1da407fe9477a..0cc779025fc6393d75f0d197a5671fbca08e0114 100644 (file)
@@ -3681,6 +3681,34 @@ _dbus_win_warn_win_error (const char *message,
   dbus_error_free (&error);
 }
 
+/**
+ * Removes a directory; Directory must be empty
+ *
+ * @param filename directory filename
+ * @param error initialized error object
+ * @returns #TRUE on success
+ */
+dbus_bool_t
+_dbus_delete_directory (const DBusString *filename,
+                        DBusError        *error)
+{
+  const char *filename_c;
+
+  _DBUS_ASSERT_ERROR_IS_CLEAR (error);
+
+  filename_c = _dbus_string_get_const_data (filename);
+
+  if (_rmdir (filename_c) != 0)
+    {
+      dbus_set_error (error, DBUS_ERROR_FAILED,
+                      "Failed to remove directory %s: %s\n",
+                      filename_c, strerror (errno));
+      return FALSE;
+    }
+
+  return TRUE;
+}
+
 /** @} end of sysdeps-win */
 /* tests in dbus-sysdeps-util.c */
 
index ed118b08f1cebbd389048d941d9e1ac089dac259..c65caa8830a04261a043298a3e8b707001925c58 100644 (file)
@@ -91,12 +91,6 @@ dbus_bool_t _dbus_file_exists (const char *filename);
 dbus_bool_t _dbus_get_config_file_name(DBusString *config_file, 
                                        char *s);
 
-int _dbus_connect_tcp_socket_with_nonce  (const char     *host,
-                                          const char     *port,
-                                          const char     *family,
-                                          const char     *noncefile,
-                                          DBusError      *error);
-
 #endif
 
 /** @} end of sysdeps-win.h */
index 1eebfdef75219527ff019f4974e958e8881a68e2..7dd6c82eb59e95549abe938f8ffd77bcf2932cd7 100644 (file)
@@ -181,6 +181,11 @@ int _dbus_connect_tcp_socket  (const char     *host,
                                const char     *port,
                                const char     *family,
                                DBusError      *error);
+int _dbus_connect_tcp_socket_with_nonce  (const char     *host,
+                                          const char     *port,
+                                          const char     *family,
+                                          const char     *noncefile,
+                                          DBusError      *error);
 int _dbus_listen_tcp_socket   (const char     *host,
                                const char     *port,
                                const char     *family,
index 0b6b0066228c14160e1c40c75a3325de59371f36..dc9933d4e36d5e982cf6cbdeb86645a1a7775943 100644 (file)
@@ -23,6 +23,7 @@
 
 #include "dbus-internals.h"
 #include "dbus-connection-internal.h"
+#include "dbus-nonce.h"
 #include "dbus-transport-socket.h"
 #include "dbus-transport-protected.h"
 #include "dbus-watch.h"