Bug 28310 - [improve] warning: the use of `mktemp' is dangerous, better use `mkstemp'
Summary: [improve] warning: the use of `mktemp' is dangerous, better use `mkstemp'
Status: RESOLVED INVALID
Alias: None
Product: gcc
Classification: Unclassified
Component: c (show other bugs)
Version: 4.1.1
: P3 normal
Target Milestone: ---
Assignee: Not yet assigned to anyone
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-07-08 07:12 UTC by Jari Aalto
Modified: 2006-07-10 16:23 UTC (History)
1 user (show)

See Also:
Host:
Target:
Build:
Known to work:
Known to fail:
Last reconfirmed:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jari Aalto 2006-07-08 07:12:46 UTC
While compiling binutils-2.17 from (Debian) sources, gcc reports following:

    bucomm.o: In function `make_tempname':
    /usr/src/net/deb/src/binutils-2.17/binutils/bucomm.c:426: warning: the use\
 of `mktemp' is dangerous, better use `mkstemp'


The proper fix is to use `mkdtemp' in the code, but the error message
does not tell this. The developers may mistakenly disregard this
message when they think "Oh, I create directories and `mkstemp' cannot
create directories, so the warning does not apply to this code".

SUGGESTION

a) Add to the manual page, mkstemp.1, that this function works for files
   only. Add Crosss reference to mkdtemp and vice versa
   (from mkdtemp => mkstemp.1)

b) Implement better checking in gcc to differtiate directories from files
   when displaying warning about use of mktemp function.

   OR

   mention both mkstemp and mkdtemp in the warning message if the
   parser cannot know which is the case

- - -

Debian Release: testing/unstable
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'stable')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/dash
Kernel: Linux 2.6.16-2-686
Locale: LANG=C, LC_CTYPE=C (charmap=ISO-8859-1) (ignored: LC_ALL set to en_US)

Versions of packages gcc depends on:
ii  cpp                           4:4.1.1-3  The GNU C preprocessor (cpp)
ii  gcc-4.1                       4.1.1-7    The GNU C compiler

Versions of packages gcc recommends:
ii  libc6-dev [libc-dev]          2.3.6-15   GNU C Library: Development Librar\
i
Comment 1 Andrew Pinski 2006-07-08 13:16:42 UTC
This warning does not come from the GCC but instead the linker but really glibc is where the warning is located, please report this bug to glibc.
Comment 2 Jari Aalto 2006-07-10 16:23:36 UTC
(In reply to comment #1)
> This warning does not come from the GCC but instead the linker but really glibc is where the warning is located, please report this bug to glibc.

Reported as:

  http://sources.redhat.com/bugzilla/show_bug.cgi?id=2898

Thanks.