From: Jonathan McDowell <noodles@earth.li>
Date: Tue, 29 Mar 2011 15:14:31 +0000 (-0800)
Subject: Explicitly use 32 bits for keyd socket commands
X-Git-Url: https://git.sommitrealweird.co.uk/onak.git/commitdiff_plain/59e5def499b3e9ae3587ebae2bef8794a1df34ea?ds=inline;hp=b66594a4e361b7363ccec13680d158f90a71e04b

Explicitly use 32 bits for keyd socket commands

  While cross machine compatibility is not currently an aim for keyd
  we should specify the word size for commands to help down the line
  if we decide to do this.
---

diff --git a/keyd.c b/keyd.c
index eab3b54..987724d 100644
--- a/keyd.c
+++ b/keyd.c
@@ -125,7 +125,7 @@ int sock_init(const char *sockname)
 
 int sock_do(int fd)
 {
-	int      cmd = KEYD_CMD_UNKNOWN;
+	uint32_t cmd = KEYD_CMD_UNKNOWN;
 	ssize_t  bytes = 0;
 	ssize_t  count = 0;
 	int	 ret = 0;
diff --git a/keyd.h b/keyd.h
index 3bc252a..9dd7227 100644
--- a/keyd.h
+++ b/keyd.h
@@ -9,6 +9,8 @@
 #ifndef __KEYD_H__
 #define __KEYD_H__
 
+#include <stdint.h>
+
 #define KEYD_SOCKET "keyd.sock"
 
 enum keyd_ops {
@@ -29,6 +31,6 @@ enum keyd_reply {
 	KEYD_REPLY_UNKNOWN_CMD = 1
 };
 
-static int keyd_version = 2;
+static uint32_t keyd_version = 2;
 
 #endif /* __KEYD_H__ */
diff --git a/keydb_keyd.c b/keydb_keyd.c
index 35d2dc4..e5d46a3 100644
--- a/keydb_keyd.c
+++ b/keydb_keyd.c
@@ -42,8 +42,8 @@ static int keyd_fd = -1;
 static void keyd_initdb(bool readonly)
 {
 	struct sockaddr_un sock;
-	int		   cmd = KEYD_CMD_UNKNOWN;
-	int		   reply = KEYD_REPLY_UNKNOWN_CMD;
+	uint32_t	   cmd = KEYD_CMD_UNKNOWN;
+	uint32_t	   reply = KEYD_REPLY_UNKNOWN_CMD;
 	ssize_t		   count;
 
 	keyd_fd = socket(PF_UNIX, SOCK_STREAM, 0);
@@ -103,7 +103,7 @@ static void keyd_initdb(bool readonly)
  */
 static void keyd_cleanupdb(void)
 {
-	int cmd = KEYD_CMD_CLOSE;
+	uint32_t cmd = KEYD_CMD_CLOSE;
 
 	if (write(keyd_fd, &cmd, sizeof(cmd)) != sizeof(cmd)) {
 		logthing(LOGTHING_CRITICAL,
@@ -164,7 +164,7 @@ static int keyd_fetch_key(uint64_t keyid, struct openpgp_publickey **publickey,
 {
 	struct buffer_ctx           keybuf;
 	struct openpgp_packet_list *packets = NULL;
-	int                         cmd = KEYD_CMD_GET;
+	uint32_t                    cmd = KEYD_CMD_GET;
 	ssize_t                     bytes = 0;
 	ssize_t                     count = 0;
 
@@ -211,7 +211,7 @@ static int keyd_fetch_key(uint64_t keyid, struct openpgp_publickey **publickey,
 */
 static int keyd_delete_key(uint64_t keyid, bool intrans)
 {
-	int cmd = KEYD_CMD_DELETE;
+	uint32_t cmd = KEYD_CMD_DELETE;
 
 	write(keyd_fd, &cmd, sizeof(cmd));
 	read(keyd_fd, &cmd, sizeof(cmd));
@@ -243,7 +243,7 @@ static int keyd_store_key(struct openpgp_publickey *publickey, bool intrans,
 	struct openpgp_packet_list *packets = NULL;
 	struct openpgp_packet_list *list_end = NULL;
 	struct openpgp_publickey   *next = NULL;
-	int                         cmd = KEYD_CMD_STORE;
+	uint32_t                    cmd = KEYD_CMD_STORE;
 	uint64_t                    keyid;
 
 	keyid = get_keyid(publickey);
@@ -294,7 +294,7 @@ static int keyd_fetch_key_text(const char *search,
 {
 	struct buffer_ctx           keybuf;
 	struct openpgp_packet_list *packets = NULL;
-	int                         cmd = KEYD_CMD_GETTEXT;
+	uint32_t                    cmd = KEYD_CMD_GETTEXT;
 	ssize_t                     bytes = 0;
 	ssize_t                     count = 0;
 
@@ -344,7 +344,7 @@ static int keyd_fetch_key_text(const char *search,
  */
 static uint64_t keyd_getfullkeyid(uint64_t keyid)
 {
-	int cmd = KEYD_CMD_GETFULLKEYID;
+	uint32_t cmd = KEYD_CMD_GETFULLKEYID;
 
 	write(keyd_fd, &cmd, sizeof(cmd));
 	read(keyd_fd, &cmd, sizeof(cmd));
@@ -373,7 +373,7 @@ static int keyd_iterate_keys(void (*iterfunc)(void *ctx,
 	struct buffer_ctx           keybuf;
 	struct openpgp_packet_list *packets = NULL;
 	struct openpgp_publickey   *key = NULL;
-	int                         cmd = KEYD_CMD_KEYITER;
+	uint32_t                    cmd = KEYD_CMD_KEYITER;
 	ssize_t                     bytes = 0;
 	ssize_t                     count = 0;
 	int                         numkeys = 0;