[Vm-dev] [OpenSmalltalk/opensmalltalk-vm] cd8567: Fix the signature of b3dDrwBufferFunction

Eliot Miranda noreply at github.com
Wed Jan 22 02:53:22 UTC 2020


  Branch: refs/heads/Cog
  Home:   https://github.com/OpenSmalltalk/opensmalltalk-vm
  Commit: cd8567dc22901aea78d47adbb700aef5500dec07
      https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/cd8567dc22901aea78d47adbb700aef5500dec07
  Author: Nicolas Cellier <nicolas.cellier.aka.nice at gmail.com>
  Date:   2020-01-10 (Fri, 10 Jan 2020)

  Changed paths:
    M platforms/Cross/plugins/Squeak3D/b3d.h

  Log Message:
  -----------
  Fix the signature of b3dDrwBufferFunction

We instantiate this function pointer with a function taking `sqInt` rather than `int`.
In 32 bits VM, it's OK, but on 64bits VM, sqInt is 64bits wide.
This prototype mismatch did prevent sign extension of negative int values.
Thus an offset of -1 in `yValue` becomes an offset of 2^32-1 in the callee,
which then cause a buffer overrun (and most often a SEGV)


  Commit: d6ca6c105cf29c89147070e039c49d831db42a81
      https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/d6ca6c105cf29c89147070e039c49d831db42a81
  Author: Nicolas Cellier <nicolas.cellier.aka.nice at gmail.com>
  Date:   2020-01-11 (Sat, 11 Jan 2020)

  Changed paths:
    M platforms/Cross/plugins/Squeak3D/b3dMain.c

  Log Message:
  -----------
  Protect against an integer overflow in b3dComputeIntersection


  Commit: 43cc2445f46f9bffb9e445bdeceb8c9e54fec44e
      https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/43cc2445f46f9bffb9e445bdeceb8c9e54fec44e
  Author: Nicolas Cellier <nicolas.cellier.aka.nice at gmail.com>
  Date:   2020-01-11 (Sat, 11 Jan 2020)

  Changed paths:
    M platforms/Cross/plugins/Squeak3D/b3dInit.c

  Log Message:
  -----------
  clamp initial scaledX/Y in int range


  Commit: f3ef66d13463dd2fc363779d0888798343e81522
      https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/f3ef66d13463dd2fc363779d0888798343e81522
  Author: Nicolas Cellier <nicolas.cellier.aka.nice at gmail.com>
  Date:   2020-01-11 (Sat, 11 Jan 2020)

  Changed paths:
    M platforms/Cross/plugins/Squeak3D/b3dMain.c

  Log Message:
  -----------
  Avoid blitting at negative yValue offset


  Commit: c02cb7e0d1868316828d1fb9df77b15d6df985b9
      https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/c02cb7e0d1868316828d1fb9df77b15d6df985b9
  Author: Eliot Miranda <eliot.miranda at gmail.com>
  Date:   2020-01-21 (Tue, 21 Jan 2020)

  Changed paths:
    M platforms/Cross/plugins/Squeak3D/b3d.h
    M platforms/Cross/plugins/Squeak3D/b3dInit.c
    M platforms/Cross/plugins/Squeak3D/b3dMain.c

  Log Message:
  -----------
  Merge pull request #469 from OpenSmalltalk/fix_issue468_Squeak3D_64bits_crash

Fix issue468 squeak3D 64bits crash


Compare: https://github.com/OpenSmalltalk/opensmalltalk-vm/compare/22a32261546a...c02cb7e0d186


More information about the Vm-dev mailing list