public inbox for glibc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug libc/814] New: perror(3) generates an error
@ 2005-04-01 16:31 steelman at post dot pl
  2005-04-01 17:38 ` [Bug libc/814] " schwab at suse dot de
                   ` (5 more replies)
  0 siblings, 6 replies; 8+ messages in thread
From: steelman at post dot pl @ 2005-04-01 16:31 UTC (permalink / raw)
  To: glibc-bugs

The perror(3) function generates an error that "overwrites" errno value.

Try to compile and run the code below and you'll get:
open: Success
write: Illegal seek
close: Illegal seek

However manpage for errno(3) says that errno is meaningful only after an
errornous call, IMHO perror should not change it's value. I suggest
restoring the errno(3) value just befor return from perror(3).

As i watched the strace(1) output for the example programme there was an _lseek
call which returned an ESPIPE.

-----EXAMPLE CODE-----
#include <stdio.h>
#include <fcntl.h>

int main(int ac, char* av[]) {
        int fd;

        fd=open("/dev/null", O_WRONLY);
        perror("open");

        write(fd, "/dev/null", 10);
        perror("write");

        close(fd);
        perror("close");

        return 0;
}
-----EXAMPLE CODE------

-- 
           Summary: perror(3) generates an error
           Product: glibc
           Version: 2.3.4
            Status: NEW
          Severity: normal
          Priority: P2
         Component: libc
        AssignedTo: gotom at debian dot or dot jp
        ReportedBy: steelman at post dot pl
                CC: glibc-bugs at sources dot redhat dot com
 GCC build triplet: i486-slackware-linux
  GCC host triplet: i486-slackware-linux
GCC target triplet: i486-slackware-linux


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

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug libc/814] perror(3) generates an error
  2005-04-01 16:31 [Bug libc/814] New: perror(3) generates an error steelman at post dot pl
@ 2005-04-01 17:38 ` schwab at suse dot de
  2005-04-01 19:42 ` schwab at suse dot de
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 8+ messages in thread
From: schwab at suse dot de @ 2005-04-01 17:38 UTC (permalink / raw)
  To: glibc-bugs


------- Additional Comments From schwab at suse dot de  2005-04-01 17:38 -------
perror is not described to set errno to any specific value, so it is allowed  
to do whatever it likes with it.  

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED


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

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug libc/814] perror(3) generates an error
  2005-04-01 16:31 [Bug libc/814] New: perror(3) generates an error steelman at post dot pl
  2005-04-01 17:38 ` [Bug libc/814] " schwab at suse dot de
@ 2005-04-01 19:42 ` schwab at suse dot de
  2005-04-01 19:43 ` schwab at suse dot de
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 8+ messages in thread
From: schwab at suse dot de @ 2005-04-01 19:42 UTC (permalink / raw)
  To: glibc-bugs


------- Additional Comments From schwab at suse dot de  2005-04-01 19:42 -------
Fixing resolution. 

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |REOPENED
         Resolution|FIXED                       |


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

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug libc/814] perror(3) generates an error
  2005-04-01 16:31 [Bug libc/814] New: perror(3) generates an error steelman at post dot pl
  2005-04-01 17:38 ` [Bug libc/814] " schwab at suse dot de
  2005-04-01 19:42 ` schwab at suse dot de
@ 2005-04-01 19:43 ` schwab at suse dot de
  2005-04-02 13:11 ` gotom at debian dot or dot jp
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 8+ messages in thread
From: schwab at suse dot de @ 2005-04-01 19:43 UTC (permalink / raw)
  To: glibc-bugs


------- Additional Comments From schwab at suse dot de  2005-04-01 19:43 -------
Fixing resolution.  

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|REOPENED                    |RESOLVED
         Resolution|                            |INVALID


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

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug libc/814] perror(3) generates an error
  2005-04-01 16:31 [Bug libc/814] New: perror(3) generates an error steelman at post dot pl
                   ` (2 preceding siblings ...)
  2005-04-01 19:43 ` schwab at suse dot de
@ 2005-04-02 13:11 ` gotom at debian dot or dot jp
  2005-04-02 13:12 ` gotom at debian dot or dot jp
  2005-04-02 17:07 ` jakub at redhat dot com
  5 siblings, 0 replies; 8+ messages in thread
From: gotom at debian dot or dot jp @ 2005-04-02 13:11 UTC (permalink / raw)
  To: glibc-bugs


------- Additional Comments From gotom at debian dot or dot jp  2005-04-02 13:11 -------
I think it's better not to change errno rathar than modifying it.



-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |REOPENED
         Resolution|INVALID                     |


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

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug libc/814] perror(3) generates an error
  2005-04-01 16:31 [Bug libc/814] New: perror(3) generates an error steelman at post dot pl
                   ` (3 preceding siblings ...)
  2005-04-02 13:11 ` gotom at debian dot or dot jp
@ 2005-04-02 13:12 ` gotom at debian dot or dot jp
  2005-04-02 17:07 ` jakub at redhat dot com
  5 siblings, 0 replies; 8+ messages in thread
From: gotom at debian dot or dot jp @ 2005-04-02 13:12 UTC (permalink / raw)
  To: glibc-bugs



-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|REOPENED                    |ASSIGNED


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

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug libc/814] perror(3) generates an error
  2005-04-01 16:31 [Bug libc/814] New: perror(3) generates an error steelman at post dot pl
                   ` (4 preceding siblings ...)
  2005-04-02 13:12 ` gotom at debian dot or dot jp
@ 2005-04-02 17:07 ` jakub at redhat dot com
  5 siblings, 0 replies; 8+ messages in thread
From: jakub at redhat dot com @ 2005-04-02 17:07 UTC (permalink / raw)
  To: glibc-bugs


------- Additional Comments From jakub at redhat dot com  2005-04-02 17:06 -------
Hm, why?  It will only make glibc slower and bigger.
errno value is undefined after most calls, it has defined value only when certain
functions signal an error (usually returning -1 or NULL) and only very few
functions have errno defined in all cases or unmodified.
perror is not one of them.  Even if perror preserved errno value, errno is
still undefined after write or close that don't return -1.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|                            |INVALID


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

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug libc/814] perror(3) generates an error
       [not found] <bug-814-131@http.sourceware.org/bugzilla/>
@ 2014-12-11 19:02 ` wjmelements at gmail dot com
  0 siblings, 0 replies; 8+ messages in thread
From: wjmelements at gmail dot com @ 2014-12-11 19:02 UTC (permalink / raw)
  To: glibc-bugs

https://sourceware.org/bugzilla/show_bug.cgi?id=814

William Morriss <wjmelements at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |wjmelements at gmail dot com

--- Comment #6 from William Morriss <wjmelements at gmail dot com> ---
Shouldn't the manpage document that errno is undefined after a perror?

-- 
You are receiving this mail because:
You are on the CC list for the bug.


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2014-12-11 19:02 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-04-01 16:31 [Bug libc/814] New: perror(3) generates an error steelman at post dot pl
2005-04-01 17:38 ` [Bug libc/814] " schwab at suse dot de
2005-04-01 19:42 ` schwab at suse dot de
2005-04-01 19:43 ` schwab at suse dot de
2005-04-02 13:11 ` gotom at debian dot or dot jp
2005-04-02 13:12 ` gotom at debian dot or dot jp
2005-04-02 17:07 ` jakub at redhat dot com
     [not found] <bug-814-131@http.sourceware.org/bugzilla/>
2014-12-11 19:02 ` wjmelements at gmail dot com

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).