AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

MoveFile hinterlässt Zombie

Ein Thema von Graf Gustav · begonnen am 12. Feb 2018 · letzter Beitrag vom 16. Feb 2018
Antwort Antwort
Graf Gustav

Registriert seit: 13. Mär 2011
51 Beiträge
 
Delphi 10.4 Sydney
 
#1

MoveFile hinterlässt Zombie

  Alt 12. Feb 2018, 10:05
Hallo,
ich bin auf einen neuen Rechner umgezogen (alles neu aufgesetzt, gleiches Win10 Pro wie auf dem vorherigen) und habe seitdem einige spukhafte Effekte.
Einer davon ist, dass MoveFile einer bmp-Datei (erzeugt mit SaveToFile einer TImage) einen Zombie hinterlässt:
eine Datei, die sich nicht löschen lässt und mir als Admin die Information über Besitzer und Zugriffsrechte verweigert.
Nach System-Restart ist sie weg.
Den MoveFile erledigt eine interne Funktion, die noch für eine ganze Reihe von Dateien (pdf, txt) aufgerufen wird, was problemlos funktioniert (Auch die Ziel-bmp-Datei wird erzeugt).
Eine Zeit lang hat dieser etwas brachiale Workaround mit dem DeleteFile geholfen, aber jetzt hat es mich eingeholt, der Zombie triumphiert.

Delphi-Quellcode:
function File_Move(const cmd: string): boolean;
  begin
    Result := MoveFile(PChar(src), PChar(dst));
    if not Result then begin
      s := SysErrorMessage(GetLastError);
      MessageDlg(Format(_MSG_ERR, [cmd, src, dst, s]), mtError, [mbOK], 0);
    end else DeleteFile(src); // ggf. Zombie töten
  end;
end;
Die Datei wird erzeugt mit:
img.Picture.SaveToFile(fn); Es muss am System liegen, denn auf dem bisherigen System funktioniert diese Anwendung rückstandsfrei.
(Ein anderer Spuk ist übrigens, dass ich bei W32-Aufrufen das Ergebnis im falschen Zeichensatz zurückbekomme, da mache ich aber einen gesonderten Thread auf,
weil mir das, was ich dazu bisher gefunden habe, nicht geholfen hat.)
Hat jemand eine Idee?
Reinhold
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.173 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: MoveFile hinterlässt Zombie

  Alt 12. Feb 2018, 10:12
Bekommst du ein Minimalbeispiel hin welches das nachstellt?

An MoveFile(..) an sich ist ja nichts böses. Das von dir beschriebene Verhalten kenne ich nur wenn man das Flag MOVEFILE_DELAY_UNTIL_REBOOT bei MoveFileEx(..) angibt.

PS: Welche Delphi-Version ist es? Ist sie evtl. so alt dass sie z.B. noch von der Schwachstelle in der BMP-Verarbeitung betroffen ist und ein Virenscanner hält da evtl. noch länger seinen Finger drauf weil ihm das fischig erscheint?
https://vuldb.com/de/?id.67392
https://vuldb.com/de/?id.67559

=> http://support.embarcadero.com/article/44015

Geändert von Der schöne Günther (12. Feb 2018 um 10:16 Uhr)
  Mit Zitat antworten Zitat
Graf Gustav

Registriert seit: 13. Mär 2011
51 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: MoveFile hinterlässt Zombie

  Alt 12. Feb 2018, 23:16
Danke für die schnellen Tipps (das Flag ist interessant....
Eine Minianwendung hatte ich erstellt, ohne den Effekt erzeugen zu können.
Ich hatte sie jetzt etwas weiter getrieben, und plötzlich hatte ich Zombies,
dann habe ich sie noch weiter getrieben und die Zombies waren wieder weg.
Ich werde das morgen hoffentlich verlässlich reproduzieren können.
Die Delphi Version ist 10.1 Berlin.
Reinhold
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#4

AW: MoveFile hinterlässt Zombie

  Alt 13. Feb 2018, 07:46
Kann es sein, dass irgendein Programm die Datei noch geöffnet hat?
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: MoveFile hinterlässt Zombie

  Alt 13. Feb 2018, 07:47
Hatte ich auch mal. Da hat bei mir ein Virenscanner dazwischen gefunkt.
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
Graf Gustav

Registriert seit: 13. Mär 2011
51 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: MoveFile hinterlässt Zombie

  Alt 16. Feb 2018, 16:13
So, das Problem ist gefixt.
Es hat zwar nicht unmittelbar etwas mit Delphi-W32-Programmierung zu tun,
aber die Lösung ist vielleicht von Interesse, weil es jeden treffen kann.

Der Zombie-Effekt kann auftreten, wenn Bild-Dateien (bei mir bmp und jpg) verschoben
(gelöscht) werden, die auf einem lokalen Laufwerk liegen (SSD und HDD).

Nachdem nämlich nicht nur meine Anwendung, sondern auch XnView und sogar der Explorer
solche Zombies erzeugt haben, war zu vermuten, dass ein dritter Prozess diesen Effekt hervorruft.
Bei mir war es "Reason Core Security Complete Protection", von dem eine Testversion in meiner
Konfiguration gelandet war, mit welchem Mutterschiff auch immer.
Diese ungebetenen Risiko-Vermeider sind manchmal schlimmer als das potenzielle Risiko.

Danke nochmal für Eure Mithilfe.
Reinhold
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.151 Beiträge
 
Delphi 12 Athens
 
#7

AW: MoveFile hinterlässt Zombie

  Alt 16. Feb 2018, 16:49
Ich hoffe bei dessen Installation war nicht zufällig "ein Haken falsch gesetzt".
Zitat: http://www.chip.de/downloads/Reason-..._78398112.html
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PosEx im Delphi viel seltener praktiziert.

Geändert von himitsu (16. Feb 2018 um 16:52 Uhr)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:14 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