[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