Add support for null constant.

0.96
Török Edvin 16 years ago
parent 124af5e8a5
commit 284ffd21f2
  1. 8
      libclamav/c++/bytecode2llvm.cpp
  2. 2
      unit_tests/input/apicalls.cbc
  3. 2
      unit_tests/input/apicalls2.cbc
  4. 2
      unit_tests/input/arith.cbc
  5. 2
      unit_tests/input/div0.cbc
  6. 2
      unit_tests/input/lsig.cbc
  7. 2
      unit_tests/input/retmagic.cbc

@ -532,9 +532,9 @@ public:
globals.reserve(bc->num_globals);
BitVector FakeGVs;
FakeGVs.resize(bc->num_globals+1);
FakeGVs.resize(bc->num_globals);
globals.push_back(0);
for (unsigned i=0;i<bc->num_globals;i++) {
for (unsigned i=1;i<bc->num_globals;i++) {
const Type *Ty = mapType(bc->globaltys[i]);
// TODO: validate number of components against type_components
@ -543,7 +543,7 @@ public:
if (isa<PointerType>(Ty)) {
unsigned g = bc->globals[i][1];
if (GVoffsetMap.count(g)) {
FakeGVs.set(i+1);
FakeGVs.set(i);
globals.push_back(0);
continue;
}
@ -611,7 +611,7 @@ public:
Argument *Ctx = F->arg_begin();
struct cli_bc_ctx *N = 0;
for (unsigned i=0;i<bc->num_globals;i++) {
if (!FakeGVs[i+1])
if (!FakeGVs[i])
continue;
unsigned g = bc->globals[i][1];
unsigned offset = GVoffsetMap[g];

@ -2,7 +2,7 @@ ClamBCaa`|``````|`agafp`clamcoincidencejb
Tedaaa`aacb`bb`bb`b
Eabaaabbfd|afdgefcgdgac``
G``
G`aa`@`
A`b`bLacb`b`aa`b`b`Fadaa
Bb`b`abbabHonnkm``odHm``oonnkdaaaaeab`b`Hhgfedcbadb`baboaaaDm``odDmjnmdTcab`babE
Aab`bLabah`aa`b`b`Facaa

@ -2,7 +2,7 @@ ClamBCaa`|``````|`akafp`clamcoincidencejb
Tedcaabjdebjdaaa`aacb`bbjdb`baacb`bb`bb`bebed
Eababaabhd|afdgefcgdg`c``abbid|afdgefcgdgac``
G``
G`aa`@`
A`b`bLahbedabfd```b`b`aa`b`b`aa`b`b`Fajac
Bbfdaadb`@d@d``fb`aab`bacabbabHonnkm``odHm``oonnkdaaadeab`bacHhgfedcbadTaaadaaab
Bb`baeabbaa`Honnkmjnmdaaafeab`baeHhgfedcbadb`bagoaafDm``odDmjnmdTcab`bag

@ -2,7 +2,7 @@ ClamBCaa`|``````|`afbbep`clamcoincidencejb
Tedaaa`
E``
G``
G`aa`@`
A`b`bLbabb`b`b`b`b`b`b`b`b`b`b`b`b`b`b`b`b`b`b`b`b`b`b`b`b`b`b`b`b`b`b`b`b`b`b`b`b`b`b`b`b`b`b`b`b`b`b`b`b`b`b`b`b`b`b`b`b`b`b`b`b`b`b`b`b`b`Fbbbaa
Bb`b``b`abb`baa`b`anb`bab`b`agb`bac`b`b`ab`bad`b`ajb`bae`b`aib`baf`b`amb`bag`b`afb`bah`b`adb`bai`b`acb`baj`b`ahb`bak`b`baab`bal`b`alb`bam`b`bbab`ban`b`aob`bao`b`aeb`bb`a`b`akb`bbaaa`aa`b`bbbaa`baaabb`bbcaa`bbaacb`bbdaa`bcaadb`bbeaa`bdaaeb`bbfaa`beaafb`bbgaa`bfaagb`bbhaa`bgaahb`bbiaa`bhaaib`bbjaa`biaajb`bbkaa`bjaakb`bblaa`bkaalb`bbmaa`blaamb`bbnaa`bmaanb`bboaa`bnaaob`bb`ba`boab`aTcab`bb`bE
A`b`bLb`cah`aa`b`b`ah`aa`b`b`ah`aa`b`b`ah`aa`b`b`b`a`aa`b`b`b`a`aa`b`b`b`a`aa`b`b`b`a`aa`b`b`b`b`aa`b`b`b`b`aa`b`b`b`b`aa`b`b`b`b`aa`b`b`b`d`aa`b`b`b`d`aa`b`b`b`d`aa`b`b`b`d`aa`b`b`Fbaebab

@ -2,7 +2,7 @@ ClamBCaa`|``````|`afabp`clamcoincidencejb
Tedaaa`
E``
G``
G`aa`@`
A`b`bLaab`b`Fabaa
Bb`b``baab@dTcab`b`E
Aab`bLaab`b`b`b`Fabaa

@ -2,7 +2,7 @@ ClamBCaa`|``c``a```|`bjaabp`clamcoincidencejb
Trojan.Foo.{A,B};Target:1;(((0|1|2)=42,2)|(3=10));EP+0:aabb;ffff;aaccee;f00d;dead
Tedebieebheebgeebfeebeeebdeebbeebaeebadebcdaaa`aacb`bbadb`bdb`db`bcajbadbcebadbcebadbcebadbcebadbcecaab`bdagahdaeahdajahdabbaddabahdakah
Eafaaafb`e|amcgefdgfgifbgegcgnfafmfef``
Gd```hbhabieBdeBbgBofBjfBafBnfBnbBfdBofBof@`bheBad@`bheBbd@`bge@Ab@Ac`b`aAa`b`aC``a`bfeBedB`eBkbB`cBjcBafBafBbfBbf@`beeBffBffBffBff@`beeBffB`cB`cBdf@`bdeBafBafBcfBcfBefBef@`beeBdfBefBafBdf@`bbe@Ag@@AhAa@AiAc@AjAb@AkAd`bad@Ab`bad@Ac`bad@Ag`bad@Ah`bad@Ai`bad@Aj`bad@Ak`bcdAdD```h`bcdAcD```h`bcdAbD```h`bcdAaD```h`bcd@D```h`
Gd```hbia`@`bieBdeBbgBofBjfBafBnfBnbBfdBofBof@`bheBad@`bheBbd@`bge@Ab@Ac`b`aAa`b`aC``a`bfeBedB`eBkbB`cBjcBafBafBbfBbf@`beeBffBffBffBff@`beeBffB`cB`cBdf@`bdeBafBafBcfBcfBefBef@`beeBdfBefBafBdf@`bbe@Ag@@AhAa@AiAc@AjAb@AkAd`bad@Ab`bad@Ac`bad@Ag`bad@Ah`bad@Ai`bad@Aj`bad@Ak`bcdAdD```h`bcdAcD```h`bcdAbD```h`bcdAaD```h`bcd@D```h`
A`b`bLaeb`b`aa`aa`bad`b`b`Fahac
Bb`b`gbBda`aaaagab`b`AadTaaaaaaab
Baaabeab`b`AbdbadacoaabAm`An`b`badabbafac@dTcab`b@d

@ -2,6 +2,6 @@ ClamBCaa`|``````|`afaap`clamcoincidencejb
Tedaaa`
E``
G``
G`aa`@`
A`b`bL`Faaaa
BTcab`bHm``odcbadE

Loading…
Cancel
Save