[Tarantool-patches] [PATCH 2/2] uuid: fix unaligned memory access

Timur Safin tsafin at tarantool.org
Thu May 21 17:37:17 MSK 2020


LGTM

: -----Original Message-----
: From: Vladislav Shpilevoy <v.shpilevoy at tarantool.org>
: Sent: Wednesday, May 20, 2020 12:25 AM
: To: Aleksandr Lyapunov <alyapunov at tarantool.org>; tarantool-
: patches at dev.tarantool.org; tsafin at tarantool.org; gorcunov at gmail.com
: Subject: Re: [PATCH 2/2] uuid: fix unaligned memory access
: 
: ====================
: diff --git a/src/lib/uuid/tt_uuid.h b/src/lib/uuid/tt_uuid.h
: index d62991c65..70c3b98b1 100644
: --- a/src/lib/uuid/tt_uuid.h
: +++ b/src/lib/uuid/tt_uuid.h
: @@ -149,19 +149,6 @@ tt_uuid_bswap(struct tt_uuid *uu)
:  	uu->time_hi_and_version = bswap_u16(uu->time_hi_and_version);
:  }
: 
: -/**
: - * \brief Test that uuid is nil
: - * \param uu UUID
: - * \retval true if all members of \a uu 0
: - * \retval false otherwise
: - */
: -inline bool
: -tt_uuid_is_nil(const struct tt_uuid *uu)
: -{
: -	const uint32_t *p = (const uint32_t *) uu;
: -	return p[0] == 0 && p[1] == 0 && p[2] == 0 && p[3] == 0;
: -}
: -
:  /**
:   * \brief Test that \a lhs equal \a rhs
:   * \param lhs UUID
: @@ -172,14 +159,23 @@ tt_uuid_is_nil(const struct tt_uuid *uu)
:  inline bool
:  tt_uuid_is_equal(const struct tt_uuid *lhs, const struct tt_uuid *rhs)
:  {
: -	const uint32_t *lp = (const uint32_t *) lhs;
: -	const uint32_t *rp = (const uint32_t *) rhs;
: -	return lp[0] == rp[0] && lp[1] == rp[1] && lp[2] == rp[2] &&
: -	       lp[3] == rp[3];
: +	return memcmp(lhs, rhs, sizeof(*lhs)) == 0;
:  }
: 
:  extern const struct tt_uuid uuid_nil;
: 
: +/**
: + * \brief Test that uuid is nil.
: + * \param uu UUID.
: + * \retval true If all members of \a uu 0.
: + * \retval false Otherwise.
: + */
: +inline bool
: +tt_uuid_is_nil(const struct tt_uuid *uu)
: +{
: +	return tt_uuid_is_equal(uu, &uuid_nil);
: +}
: +
:  char *
:  tt_uuid_str(const struct tt_uuid *uu);
: 



More information about the Tarantool-patches mailing list