[botan-devel] [Monotone-debian] Monotone completely broken in Debian testing (I think)

Jack Lloyd lloyd at randombit.net
Tue Jul 10 09:24:53 EDT 2012


Hi Markus,

Yes, stable branches are supposed to be ABI compatible and this is
definitely an error on my part. I'm not quite sure what I was thinking
when I made that change, tbh. :/

I will be releasing 1.10.3 later today with the change below.

-Jack

On Tue, Jul 10, 2012 at 11:59:40AM +0200, Markus Wanner wrote:
> Jack,
> 
> as Francis Russel pointed out on the Debian packaging mailing list for
> monotone, it looks like Botan 1.10.2 broke ABI compatibility compared to
> 1.10.1, see here:
> http://lists.nongnu.org/archive/html/monotone-debian/2012-07/msg00000.html
> 
> I could reproduce this and think I identified the cause. The culprit
> seems to be rev 430a859e2a1e7c0ea47beef7d399a45e8ed9ed9a, with
> changelog: "Use initializer list, make destructor virtual". I think this
> adds the destructor to the vtable of the object MemoryRegion and thus
> represents an ABI-incompatible change - of an object that's quite
> heavily used, so mtn breaks even for things as simple as `mtn version`.
> 
> The attached patch against the most recent revision in the 1.10 branch
> reverts that virtualization of the destructor and thus fixes the issue
> (i.e. monotone compiled against 1.10.1 runs fine with a recent .so
> library of botan-1.10 with that patch).
> 
> Can you please comment on whether or not this is a safe fix? A quick
> `./check --test` seems to run through just fine.
> 
> IIRC the stable patch releases of Botan are supposed to be ABI
> compatible. If that's the case, how do you want to deal with this issue?
> Mark 1.10.2 as broken and release a 1.10.3 soon?
> 
> Regards
> 
> Markus Wanner

> #
> # old_revision [2bf8ad2c501213efb4cf9b219330b87666988e91]
> #
> # patch "src/alloc/secmem.h"
> #  from [ea3aff086ed1a1f49ee8a0e877ba755dc575e6b4]
> #    to [746a95d28216664a4e6c945ba32663cea6023ae5]
> #
> ============================================================
> --- src/alloc/secmem.h	ea3aff086ed1a1f49ee8a0e877ba755dc575e6b4
> +++ src/alloc/secmem.h	746a95d28216664a4e6c945ba32663cea6023ae5
> @@ -164,7 +164,7 @@ class MemoryRegion
>        */
>        void swap(MemoryRegion<T>& other);
>  
> -      virtual ~MemoryRegion() { deallocate(buf, allocated); }
> +      ~MemoryRegion() { deallocate(buf, allocated); }
>     protected:
>        MemoryRegion() : buf(0), used(0), allocated(0), alloc(0) {}
>  

> _______________________________________________
> botan-devel mailing list
> botan-devel at randombit.net
> http://lists.randombit.net/mailman/listinfo/botan-devel




More information about the botan-devel mailing list