Git Product home page Git Product logo

Comments (10)

syohex avatar syohex commented on May 31, 2024

I can reproduce this issue. However I cannot reproduce with lower optimization option(-O0, -O1). Could you check test by following steps ?

  • make distclean
  • perl Makefile.PL
  • Edit Makefile and replace -O3 option with -O0 or -O1
  • make
  • Test again prove -bv t/05_preferred_int.t

I suppose this may be compiler issue.

from msgpack-perl.

mmucklo avatar mmucklo commented on May 31, 2024

-O1 does indeed work.

from msgpack-perl.

kazuho avatar kazuho commented on May 31, 2024

Not being able to reproduce I am not sure, but my two cents go to pack.c line 161:

msgpack_pack_int32(enc, ((int32_t)num) * -1);

In case num is 0x80000000, the multiplication overflows, which leads to undefined behavior.

If this is the case, changing the expression to (int32_t)-(int64_t)num will likely fix the issue.

cf. INT32-C. Ensure that operations on signed integers do not result in overflow - securecoding.cert.org

from msgpack-perl.

tony avatar tony commented on May 31, 2024

Changing it from -O2 to -O1 in Makefile resolved the issue on FreeBSD 11-CURRENT

$ freebsd-version; uname -a                                          
11.0-CURRENT
FreeBSD z600 11.0-CURRENT FreeBSD 11.0-CURRENT #14: Sat Nov 14 00:58:49 CST 2015 

$ perl --version

This is perl 5, version 20, subversion 3 (v5.20.3) built for amd64-freebsd-thread-multi

$ clang --version
FreeBSD clang version 3.7.0 (tags/RELEASE_370/final 246257) 20150906
Target: x86_64-unknown-freebsd11.0
Thread model: posix

from msgpack-perl.

kazuho avatar kazuho commented on May 31, 2024

@tony @mmucklo Can you please check if applying #24 fixes the issue?

from msgpack-perl.

mmucklo avatar mmucklo commented on May 31, 2024

Yes, applying #24 fixed the issue for me.

from msgpack-perl.

tony avatar tony commented on May 31, 2024

@kazuho That did it. Tests pass on FreeBSD 11-CURRENT with Clang 3.7.

from msgpack-perl.

kazuho avatar kazuho commented on May 31, 2024

@mmucklo @tony Thank you for the confirmation.

@gfx @tokuhirom @makamaka please respond to @shohex on #24.

from msgpack-perl.

syohex avatar syohex commented on May 31, 2024

Merged #24. Thanks @kazuho

from msgpack-perl.

syohex avatar syohex commented on May 31, 2024

I have released version 0.49(https://metacpan.org/release/Data-MessagePack) and confirmed that tests are passed on MacOSX 10.11, Clang(Apple LLVM version 7.0.0 (clang-700.1.76))

from msgpack-perl.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.