h.pahlke@nexgo.de [25 Jun 2002 14:13:56 +0200 (CEST)]:
Gibt es da trotzdem eine einfache Loesung oder sind hier doch etwas tiefergehende Programmierkenntnisse erforderlich?
Da sind ein wenig Programmierkenntnisse erforderlich, denn ein einfaches Ersetzen funktioniert ja nicht. Das Problem mit tmpnam ist, dass diese Funktion ja nur einen eindeutigen Namen zurückliefert. In der Zeit zwischen Erhalt des Namens und dem dann folgenden Öffnen der Datei könnte ein böswilliger Mensch dir eine Datei mit dem Namen unterschieben. Das lässt sich nun verhindern, wenn O_EXCL|O_CREAT in den Flags für open(2) verwendet wird, da dann ein Fehler gemeldet wird, wenn die Datei existiert. Die Warnmeldung kommt allerdings vom Linker (ld) (präziser gesagt, sie ist in dem Objekt kodiert, welches tmpnam enthält und der Linker gibt nur diese Meldung aus) und der kann nicht prüfen, ob die Verwendung von tmpnam in diesem Fall nun sicher oder unsicher ist, also wird gewarnt. Philipp