Avoid reading uninitialized variables in serialization code (triggered when running "make check") #14757

pull practicalswift wants to merge 1 commits into bitcoin:master from practicalswift:avoid-read-of-uninitialized-variable changing 2 files +2 −2
  1. practicalswift commented at 3:42 PM on November 19, 2018: contributor

    Avoid reading uninitialized variables in serialization code (triggered when running make check).

    Note that the variable nVersionDummy is read in the call to the CVarInt constructor:

    template<VarIntMode Mode, typename I>
    class CVarInt
    {
    protected:
        I &n;
    public:
        explicit CVarInt(I& nIn) : n(nIn) { }
    …
    }
    
    template<typename T>
    inline T& REF(const T& val)
    {
        return const_cast<T&>(val);
    }
    
    CVarInt<Mode, I> WrapVarInt(I& n) { return CVarInt<Mode, I>{n}; }
    
    #define VARINT(obj, ...) WrapVarInt<__VA_ARGS__>(REF(obj))
    
    unsigned int nVersionDummy;
    ::Unserialize(s, VARINT(nVersionDummy));
    
  2. Avoid reading uninitialized variables in serialization code (triggered when running "make check") 9b7af36cc0
  3. practicalswift closed this on Nov 19, 2018

  4. practicalswift commented at 3:46 PM on November 19, 2018: contributor

    Sorry! My bad: It is passed as a reference all the way down to CVarInt, so we're not reading it :-)

  5. practicalswift deleted the branch on Apr 10, 2021
  6. DrahtBot locked this on Aug 18, 2022
Contributors

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-04-16 15:15 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me