[X2Go-Commits] [nx-libs] 02/04: include: introduce byte counting functions.

git-admin at x2go.org git-admin at x2go.org
Wed Feb 18 03:27:33 CET 2015


This is an automated email from the git hooks/post-receive script.

x2go pushed a commit to branch 3.6.x
in repository nx-libs.

commit 3937db18a203f9936387286b95328f27013a5ffe
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date:   Mon Jun 29 13:09:57 2009 +1000

    include: introduce byte counting functions.
    
    This patch adds the following three functions:
     bits_to_bytes(bits) - the number of bytes needed to hold 'bits'
     bytes_to_int32(bytes) - the number of 4-byte units to hold 'bytes'
     pad_to_int32(bytes) - the closest multiple of 4 equal to or larger than
                            'bytes'.
    
    All three operations are common in protocol processing and currently the
    server has ((foo + 7)/8 + 3)/4 operations all over the place. A common set
    of functions reduce the error rate of these (albeit simple) calculations and
    improve readability of the code.
    
    The functions do not check for overflow.
    
    v2: backport to nx-libs 3.6.x as a prereq for
    the CVE-2015-0255 fix (Mike DePaulo)
    
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
---
 nx-X11/programs/Xserver/include/misc.h |   30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

diff --git a/nx-X11/programs/Xserver/include/misc.h b/nx-X11/programs/Xserver/include/misc.h
index 5944a42..849f1b5 100644
--- a/nx-X11/programs/Xserver/include/misc.h
+++ b/nx-X11/programs/Xserver/include/misc.h
@@ -193,6 +193,36 @@ typedef struct _xReq *xReqPtr;
 
 #endif
 
+/**
+ * Calculate the number of bytes needed to hold bits.
+ * @param bits The minimum number of bits needed.
+ * @return The number of bytes needed to hold bits.
+ */
+static __inline__ int
+bits_to_bytes(const int bits) {
+    return ((bits + 7) >> 3);
+}
+/**
+ * Calculate the number of 4-byte units needed to hold the given number of
+ * bytes.
+ * @param bytes The minimum number of bytes needed.
+ * @return The number of 4-byte units needed to hold bytes.
+ */
+static __inline__ int
+bytes_to_int32(const int bytes) {
+    return (((bytes) + 3) >> 2);
+}
+
+/**
+ * Calculate the number of bytes (in multiples of 4) needed to hold bytes.
+ * @param bytes The minimum number of bytes needed.
+ * @return The closest multiple of 4 that is equal or higher than bytes.
+ */
+static __inline__ int
+pad_to_int32(const int bytes) {
+    return (((bytes) + 3) & ~3);
+}
+
 /* some macros to help swap requests, replies, and events */
 
 #define LengthRestB(stuff) \

--
Alioth's /srv/git/_hooks_/post-receive-email on /srv/git/code.x2go.org/nx-libs.git


More information about the x2go-commits mailing list