Browse Source

+ parse and check the version of the 'linking' section

Nikolay Nikolov 1 year ago
parent
commit
8802c7d489
1 changed files with 14 additions and 0 deletions
  1. 14 0
      compiler/ogwasm.pas

+ 14 - 0
compiler/ogwasm.pas

@@ -2232,8 +2232,22 @@ implementation
             end;
             end;
 
 
           function ReadLinkingSection: Boolean;
           function ReadLinkingSection: Boolean;
+            const
+              ExpectedVersion = 2;
+            var
+              Version: uint32;
             begin
             begin
               Result:=False;
               Result:=False;
+              if not ReadUleb32(Version) then
+                begin
+                  InputError('Error reading the version of the ''linking'' subsection');
+                  exit;
+                end;
+              if Version<>ExpectedVersion then
+                begin
+                  InputError('The ''linking'' subsection has an unsupported version (expected version ' + tostr(ExpectedVersion) + ', got version ' + tostr(Version) + ')');
+                  exit;
+                end;
             end;
             end;
 
 
           function ReadProducersSection: Boolean;
           function ReadProducersSection: Boolean;