[SSSD] [PATCH] autofs: Use SAFEALIGN_SET_UINT32 instead of SAFEALIGN_COPY_UINT32

Jakub Hrozek jhrozek at redhat.com
Wed Jan 16 08:41:33 UTC 2013


The attached patch fixes an endianess issue where we were copying size_t
into uint32_t which broke on Big Endian machines and in general using
the _SET macro is cleaner as in internally assigns to a exact sized
variable.
-------------- next part --------------
>From 1dc79281ef45b086c50bd9b6b623547956e8f44c Mon Sep 17 00:00:00 2001
From: Jakub Hrozek <jhrozek at redhat.com>
Date: Wed, 16 Jan 2013 09:25:58 +0100
Subject: [PATCH] autofs: Use SAFEALIGN_SET_UINT32 instead of
 SAFEALIGN_COPY_UINT32

---
 src/sss_client/autofs/sss_autofs.c | 15 +++++----------
 1 file changed, 5 insertions(+), 10 deletions(-)

diff --git a/src/sss_client/autofs/sss_autofs.c b/src/sss_client/autofs/sss_autofs.c
index e87ef4fd22d7ea577696866c00bbbb066bee8274..435cafe2385783ce02ca8ec94575ab30aaa487dc 100644
--- a/src/sss_client/autofs/sss_autofs.c
+++ b/src/sss_client/autofs/sss_autofs.c
@@ -254,7 +254,6 @@ _sss_getautomntent_r(char **key, char **value, void *context)
     size_t ctr = 0;
     size_t data_len = 0;
     uint8_t *data;
-    uint32_t v;
 
     sss_nss_lock();
 
@@ -292,14 +291,13 @@ _sss_getautomntent_r(char **key, char **value, void *context)
         goto out;
     }
 
-    SAFEALIGN_COPY_UINT32(data, &name_len, &ctr);
+    SAFEALIGN_SET_UINT32(data, name_len, &ctr);
 
     safealign_memcpy(data+ctr, ctx->mapname, name_len + 1, &ctr);
 
-    SAFEALIGN_COPY_UINT32(data+ctr, &ctx->cursor, &ctr);
+    SAFEALIGN_SET_UINT32(data+ctr, ctx->cursor, &ctr);
 
-    v = GETAUTOMNTENT_MAX_ENTRIES;
-    SAFEALIGN_COPY_UINT32(data+ctr, &v, &ctr);
+    SAFEALIGN_SET_UINT32(data+ctr, GETAUTOMNTENT_MAX_ENTRIES, &ctr);
 
     rd.data = data;
     rd.len = data_len;
@@ -348,7 +346,6 @@ _sss_getautomntbyname_r(const char *key, char **value, void *context)
     size_t name_len;
     size_t data_len = 0;
     uint8_t *data;
-    uint32_t v;
     size_t ctr = 0;
     struct sss_cli_req_data rd;
     uint8_t *repbuf = NULL;
@@ -392,13 +389,11 @@ _sss_getautomntbyname_r(const char *key, char **value, void *context)
         goto out;
     }
 
-    v = name_len;
-    SAFEALIGN_COPY_UINT32(data, &v, &ctr);
+    SAFEALIGN_SET_UINT32(data, name_len, &ctr);
 
     safealign_memcpy(data+ctr, ctx->mapname, name_len + 1, &ctr);
 
-    v = key_len;
-    SAFEALIGN_COPY_UINT32(data+ctr, &v, &ctr);
+    SAFEALIGN_SET_UINT32(data+ctr, key_len, &ctr);
 
     safealign_memcpy(data+ctr, key, key_len + 1, &ctr);
 
-- 
1.8.0.2



More information about the sssd-devel mailing list