[openib-general] [PATCH] SDP headers using unsafe macros
Libor Michalek
libor at topspin.com
Fri Feb 18 10:55:03 PST 2005
On Thu, Feb 17, 2005 at 05:46:43PM +0200, Michael S. Tsirkin wrote:
>
> Some SDP hdeaders defines unsafe macros, which may be
> dangerous to use, e.g. inside an if or while statement.
Thanks Michael, applied and commited.
-Libor
> Signed-off-by: Michael S. Tsirkin <mst at mellanox.co.il>
>
> Index: sdp_proto.h
> ===================================================================
> --- sdp_proto.h (revision 1810)
> +++ sdp_proto.h (working copy)
> @@ -585,15 +585,16 @@
> #define SDP_EXPECT(expr)
> #define SDP_CHECK_NULL(value, result)
> #else
> -#define SDP_EXPECT(expr) \
> -{ \
> - if (!(expr)) { \
> - sdp_dbg_err("EXCEPT: Internal error check <%s> failed.", #expr); \
> - } \
> -} /* SDP_EXPECT */
> +#define SDP_EXPECT(expr) \
> +do { \
> + if (!(expr)) { \
> + sdp_dbg_err("EXCEPT: Internal error check <%s> failed.", \
> + #expr); \
> + } \
> +} while (0) /* SDP_EXPECT */
>
> #define SDP_CHECK_NULL(value, result) \
> - if (NULL == (value)) return (result);
> + do { if (NULL == (value)) return (result); } while (0)
> #endif
> /* --------------------------------------------------------------------- */
> /* Inline functions. */
> Index: sdp_conn.h
> ===================================================================
> --- sdp_conn.h (revision 1810)
> +++ sdp_conn.h (working copy)
> @@ -102,7 +102,7 @@
> * transition one of the disconnect pending states to disconnect send
> */
> #define SDP_ST_PEND_2_SEND(conn) \
> - (conn)->state = ((conn)->state + 0x0100) & ~SDP_ST_MASK_DIS_PEND;
> + ((conn)->state = ((conn)->state + 0x0100) & ~SDP_ST_MASK_DIS_PEND)
> /*
> * internal connection structure
> */
> @@ -130,14 +130,14 @@
> * connection handle within a socket.
> */
> #define SDP_GET_CONN(sk) \
> - *((struct sdp_opt **)&(sk)->sk_protinfo)
> + (*((struct sdp_opt **)&(sk)->sk_protinfo))
> #define SDP_SET_CONN(sk, conn) \
> - *((struct sdp_opt **)&(sk)->sk_protinfo) = (conn)
> + (*((struct sdp_opt **)&(sk)->sk_protinfo) = (conn))
>
> #define SDP_CONN_SET_ERR(conn, val) \
> - (conn)->error = (conn)->sk->sk_err = (val)
> + ((conn)->error = (conn)->sk->sk_err = (val))
> #define SDP_CONN_GET_ERR(conn) \
> - (conn)->error
> + ((conn)->error)
> /* --------------------------------------------------------------------- */
> /* state transition information recording */
> /* --------------------------------------------------------------------- */
> @@ -153,7 +153,7 @@
> }; /* struct sdp_conn_state */
>
> #define SDP_CONN_ST_SET(conn, val) \
> -{ \
> +do { \
> (conn)->state = (val); \
> if (SDP_CONN_STATE_MAX > (conn)->state_rec.value) { \
> (conn)->state_rec.state[(conn)->state_rec.value] = (val); \
> @@ -161,10 +161,10 @@
> (conn)->state_rec.line[(conn)->state_rec.value] = __LINE__; \
> (conn)->state_rec.value++; \
> } \
> -}
> +} while(0)
>
> #define SDP_CONN_ST_INIT(conn) \
> -{ \
> +do { \
> (conn)->state = SDP_CONN_ST_INVALID; \
> for ((conn)->state_rec.value = 0; \
> SDP_CONN_STATE_MAX > (conn)->state_rec.value; \
> @@ -174,10 +174,10 @@
> (conn)->state_rec.line[(conn)->state_rec.value] = 0; \
> } \
> (conn)->state_rec.value = 0; \
> -}
> +} while(0)
> #else
> -#define SDP_CONN_ST_SET(conn, val) (conn)->state = (val)
> -#define SDP_CONN_ST_INIT(conn) (conn)->state = SDP_CONN_ST_INVALID
> +#define SDP_CONN_ST_SET(conn, val) ((conn)->state = (val))
> +#define SDP_CONN_ST_INIT(conn) ((conn)->state = SDP_CONN_ST_INVALID)
> #endif
> /*
> * connection lock
>
> --
> MST - Michael S. Tsirkin
> _______________________________________________
> openib-general mailing list
> openib-general at openib.org
> http://openib.org/mailman/listinfo/openib-general
>
> To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general
More information about the general
mailing list