Bug #60

Assertion into VM 1.10.0.0

Added by Anonymous over 16 years ago. Updated about 16 years ago.

Status:ResolvedStart date:01/29/2009
Priority:ImmediateDue date:
Assignee:-% Done:

0%

Category:Virtual Machine
Target version:1.10
Platform:All Triage Stage:
Resolution:

Description

Upgrading VM from version 1.9.1.12 to version 1.10.0.0, one of our application doesn't start any more. The Anubis VM close itself with following message :

anbexec: /home/ricard/develop/anubis/anubis_dev/vm/src/serialize.cpp:1391: static void CM::AnubisProcess::ui_indirect_type_Int(CM::AnubisProcess*): Assertion `nb != 0' failed.
Aborted

As this application contains a Web Server which use serialized states on disk, it should be the unserializing of a state which fails.

History

#1 Updated by Alain Prouté over 16 years ago

  • Assignee changed from Alain Prouté to Anonymous

Cédric RICARD wrote:

Upgrading VM from version 1.9.1.12 to version 1.10.0.0, one of our application doesn't start any more. The Anubis VM close itself with following message :
[...]

As this application contains a Web Server which use serialized states on disk, it should be the unserializing of a state which fails.

This is actually a bug in serialize.cpp. The case nb 0 (nb number of bigits) line 1391 must be treated in the same way as the case
(nb > 0x3ffffffe || (4*(nb+1)) > (U32)(free_sdata)) just above. If one of these tests fails, the datum cannot be unserialized. In this
situation, one must set the flag:

ufflag = 1;

and:

(1) in the case of an indirect unserialization instruction, do the following:

((MAM(m_SP)-1))) = 0;    /* put the fake datum '0' instead of the unserialized datum / 
*(MAM(m_SP)-1) += 4; /
position the destination pointer one word higher for the next datum */

(2) in the case of a direct unserialization instruction, do the following:

MAM(m_R) = 0;                      /* put the fake datum '0' in R */

We have exactly the same bug at line 1305 (type_Int).

Notice: 'ui_decl' = unserialization instruction'
'si_decl' = serialization instruction

I did not modify the source. I let Cédric perform the correction.

#2 Updated by Alain Prouté about 16 years ago

  • Status changed from New to Resolved

Fixed.

Also available in: Atom PDF

Redmine Appliance - Powered by TurnKey Linux