Linker Meldung - woher genau? "the use of `tmpnam' is dangerous, better use `mkstemp'"
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Waehrend des Linkens eines Programmes bekomme ich folgende Meldung: the use of `tmpnam' is dangerous, better use `mkstemp' Nun frage ich mich aber, woher die Meldung genau kommt, da ich sie im Executable von ld nicht finde??? - -- Heiko Nardmann (Dipl.-Ing.), h.nardmann@secunet.de, Software Development secunet Security Networks AG - Sicherheit in Netzwerken (www.secunet.de), Weidenauer Str. 223-225, D-57076 Siegen Tel. : +49 271 48950-13, Fax : +49 271 48950-50 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.4 (GNU/Linux) Comment: For info see http://www.gnupg.org iD8DBQE7Z/IZpm53PRScYygRAgiQAJ0cZtOj6WWO72Kau5FHLVs4kNfM+QCgmnQA ROzPM1uYZkMNmZNrGeGYijk= =46vs -----END PGP SIGNATURE-----
Heiko Nardmann wrote:
Waehrend des Linkens eines Programmes bekomme ich folgende Meldung:
the use of `tmpnam' is dangerous, better use `mkstemp'
Nun frage ich mich aber, woher die Meldung genau kommt, da ich sie im Executable von ld nicht finde???
Die kommt waehrend des Linkens von der glibc! Zu finden ist das ganze (wenn Du den Quellcode der glibc hernimmst) in der Datei tmpnam.c: [...] link_warning (tmpnam, "the use of `tmpnam' is dangerous, better use `mkstemp'") [...] Beim Linken (da wird die glibc ja als Standard automatisch gebraucht, ohne dass Du eine Option angeben musst) gibt der Linker dann die Warnmeldung aus. Die Routine tmpnam.o ist ja quasi in der glibc-Library enthalten, und sobald beim Linken darauf zugegriffen wird, gibt ld die o.a. Linker- Warning aus. Daher findest Du solche Warnungen immer bei der Routine selbst, nicht bei ld -- ld gibt sie nur aus. Gruesse, Thomson -- Thomas Hertweck, Geophysicist Geophysical Institute, Karlsruhe University (TH) Hertzstr. 16, D-76187 Karlsruhe, Germany
* Heiko Nardmann [Wed, 1 Aug 2001 14:12:09 +0200]:
Waehrend des Linkens eines Programmes bekomme ich folgende Meldung:
the use of `tmpnam' is dangerous, better use `mkstemp'
Nun frage ich mich aber, woher die Meldung genau kommt, da ich sie im Executable von ld nicht finde???
Die Meldung kommt aus der glibc, sprich libc.so.6 ;-) Der Linker weiss nichts von Funktionen und deren Sicherheit, die Programmierer der glibc sehr wohl. Daher werden für einige Funktionen solche Warnungen eingebaut. Wie genau der Trick funktioniert, weiss ich auch nicht und müsste erst mal unsere Glibc-Spezialisten fragen. -- Pinguine sollen die Dinosaurier retten -- Handelsblatt über Linux auf S/390
participants (3)
-
Heiko Nardmann
-
Philipp Thomas
-
Thomas Hertweck