Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Probleme mit gepostetem code (https://www.delphipraxis.net/211863-probleme-mit-gepostetem-code.html)

TurboMagic 13. Nov 2022 08:54

Probleme mit gepostetem code
 
Hallo,

eigentlich gehört mein Beitrag hier dazu:
https://www.delphipraxis.net/23936-d...istrieren.html
aber dort kann ich aus mir nicht ganz verständlichen Gründe nichts posten. Es kommt immer eine Fehlermeldung und die aufgeführten Gründe sind entweder
zu unspeziefisch oder treffen nicht zu (mein Benutzerkonto hier ist ja offensichtlich aktiviert...).

Aber warum wollte ich dort Posten?
Weil ich beim Ausführen der als tfiletyperegistration.zip dort verlinkten Demo einen Crash in function IsAdmin: LongBool; bekomme.
Der Crash passiert bei mir in Zeile 53, beim 2. Durchlauf der Schleife:

if EqualSid(TokenInformation^.Groups[Loop].Sid, AdminSid) then

Es ist ein bereichsüberlauf und da in D11.2 die Überlaufsprüfung standardmäßig an ist, hab' ich die mal ausgeschaltet.
Aber: ändert nix.

Hat da irgendjemand weitere Infos für mich?

Daniel 13. Nov 2022 12:37

AW: Probleme mit gepostetem code
 
Die Code-Library war bzw. ist immer noch ein Ort für Inhalte, die (mehr oder weniger) aufbereitet sind. Deswegen existieren dort Beschränkungen für neue Beiträge.
Es gibt die Rubrik "Neuen Beitrag zur CodeLibrary hinzufügen", dort - so der ursprüngliche Gedanke - sollten neue Beiträge veröffentlicht werden. In Spitzenzeiten gab es tatsächlich mal so etwas wie einen Peer-Review der Inhalte.
Das alles ist aber organisatorisch nicht mehr darstellbar. Betrachte die Code-Library daher bis auf Weiteres als "read-only".

TurboMagic 13. Nov 2022 13:31

AW: Probleme mit gepostetem code
 
Danke für die Infos, dann suchen wir jetzt möglichst in diesem Thread nach dem Fehler für den Crash...
...ich kenne mich da nämlich zuwenig aus.

Dalai 13. Nov 2022 13:46

AW: Probleme mit gepostetem code
 
Vor offensichtlich genau zehn Jahren hatte ich auch eine Frage zu dieser Funktion gestellt - sogar aus dem gleichen Grund: https://www.delphipraxis.net/171580-...n-isadmin.html

Inzwischen hab ich die Funktion für mich etwas umgebaut, so dass die Bereichsprüfung nur dort und nur temporär deaktiviert wird. Hier der geänderte Ausschnitt:
Delphi-Quellcode:
[...]
              for x := 0 to ptgGroups^.GroupCount - 1 do begin
                  {$IFOPT R+}
                    {$DEFINE TOGGLED_RANGECHECK}
                    {$RANGECHECKS OFF}
                  {$ENDIF}
                  if EqualSid(psidAdministrators, ptgGroups^.Groups[x].Sid) then begin
                      //consider denied ACE with Administrator SID
                      Result:= ptgGroups^.Groups[x].Attributes and SE_GROUP_USE_FOR_DENY_ONLY <> SE_GROUP_USE_FOR_DENY_ONLY;
                      Break;
                  end;
                  {$IFDEF TOGGLED_RANGECHECK}
                   {$RANGECHECKS ON}
                  {$ENDIF}
              end;
[...]
Seitdem hab ich keine Probleme mehr, egal ob ein Projekt mit oder ohne Bereichsprüfung kompiliert wird.

Wichtig ist, das Projekt nach der Änderung komplett neu zu erzeugen (Shift+F9).

Grüße
Dalai

Redeemer 14. Nov 2022 21:05

AW: Probleme mit gepostetem code
 
Zitat:

Zitat von Daniel (Beitrag 1514716)
Das alles ist aber organisatorisch nicht mehr darstellbar. Betrachte die Code-Library daher bis auf Weiteres als "read-only".

Threads erstellen geht aber noch. Und die sind seit vielen, vielen Jahren nur Quatsch. Dass Antworten schlimmer sein könnten als das, was Threads erstellt wird, kann ich mir beim besten Willen nicht vorstellen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:47 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz