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 <[EMAIL PROTECTED]>
> 
> 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
> [email protected]
> http://openib.org/mailman/listinfo/openib-general
> 
> To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general
_______________________________________________
openib-general mailing list
[email protected]
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to