Przeglądaj źródła

* GetModuleByAddr: Prevent returning a name of the current executable for invalid addresses such as pointer(-1) on Windows.

git-svn-id: trunk@43364 -
yury 5 lat temu
rodzic
commit
4ade471488
1 zmienionych plików z 6 dodań i 3 usunięć
  1. 6 3
      rtl/inc/exeinfo.pp

+ 6 - 3
rtl/inc/exeinfo.pp

@@ -98,12 +98,15 @@ uses
         begin
           baseaddr:=Tmm.AllocationBase;
           TST[0]:= #0;
-          GetModuleFileName(THandle(Tmm.AllocationBase), TST, Length(TST));
+          if baseaddr <> nil then
+            begin
+              GetModuleFileName(THandle(Tmm.AllocationBase), TST, Length(TST));
 {$ifdef FPC_OS_UNICODE}
-          filename:= String(PWideChar(@TST));
+              filename:= String(PWideChar(@TST));
 {$else}
-          filename:= String(PChar(@TST));
+              filename:= String(PChar(@TST));
 {$endif FPC_OS_UNICODE}
+            end;
         end;
     end;