From bc4691a23e0ff1ff6f2452d7ad5d4cd612ad06a1 Mon Sep 17 00:00:00 2001 From: Willem Jan Palenstijn Date: Sat, 25 Jun 2011 21:15:34 +0200 Subject: SCI: Fix incorrect usage of sizeof Thanks to salty-horse for the reports. --- engines/sci/decompressor.cpp | 5 +++-- engines/sci/engine/vm.cpp | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) (limited to 'engines/sci') diff --git a/engines/sci/decompressor.cpp b/engines/sci/decompressor.cpp index 7e7acab994..82af6eca43 100644 --- a/engines/sci/decompressor.cpp +++ b/engines/sci/decompressor.cpp @@ -257,7 +257,8 @@ int DecompressorLZW::unpackLZW1(Common::ReadStream *src, byte *dest, uint32 nPac init(src, dest, nPacked, nUnpacked); byte *stak = (byte *)malloc(0x1014); - Tokenlist *tokens = (Tokenlist *)malloc(0x1004 * sizeof(Tokenlist)); + unsigned int tokensSize = 0x1004 * sizeof(Tokenlist); + Tokenlist *tokens = (Tokenlist *)malloc(tokensSize); if (!stak || !tokens) { free(stak); free(tokens); @@ -265,7 +266,7 @@ int DecompressorLZW::unpackLZW1(Common::ReadStream *src, byte *dest, uint32 nPac error("[DecompressorLZW::unpackLZW1] Cannot allocate decompression buffers"); } - memset(tokens, 0, sizeof(tokens)); + memset(tokens, 0, tokensSize); byte lastchar = 0; uint16 stakptr = 0, lastbits = 0; diff --git a/engines/sci/engine/vm.cpp b/engines/sci/engine/vm.cpp index db682de16f..274b0bbbc9 100644 --- a/engines/sci/engine/vm.cpp +++ b/engines/sci/engine/vm.cpp @@ -462,7 +462,7 @@ int readPMachineInstruction(const byte *src, byte &extOpcode, int16 opparams[4]) extOpcode = src[offset++]; // Get "extended" opcode (lower bit has special meaning) const byte opcode = extOpcode >> 1; // get the actual opcode - memset(opparams, 0, sizeof(opparams)); + memset(opparams, 0, 4*sizeof(int16)); for (int i = 0; g_opcode_formats[opcode][i]; ++i) { //debugN("Opcode: 0x%x, Opnumber: 0x%x, temp: %d\n", opcode, opcode, temp); -- cgit v1.2.3