http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/errno.h.html
says:

"The <errno.h> header shall provide a declaration or definition for
errno. The symbol errno shall expand to a modifiable lvalue of type int.
It is unspecified whether errno is a macro or an identifier declared
with external linkage. If a macro definition is suppressed in order to
access an actual object, or a program defines an identifier with the
name errno, the behavior is undefined."

strace source does use identifier "errno" at a parameter of one
function. I propose to rename it, so that we don't risk
getting build breakage here on obscure platforms or libcs.

-- 
vda


diff -d -urpN strace.5/strace.c strace.6/strace.c
--- strace.5/strace.c   2011-05-24 22:32:51.170636309 +0200
+++ strace.6/strace.c   2011-05-24 20:38:49.135180797 +0200
@@ -1949,15 +1949,15 @@ extern char *sys_errlist[];
 #endif /* HAVE_DECL_SYS_ERRLIST */
 
 const char *
-strerror(int errno)
+strerror(int err_no)
 {
        static char buf[64];
 
-       if (errno < 1 || errno >= sys_nerr) {
-               sprintf(buf, "Unknown error %d", errno);
+       if (err_no < 1 || err_no >= sys_nerr) {
+               sprintf(buf, "Unknown error %d", err_no);
                return buf;
        }
-       return sys_errlist[errno];
+       return sys_errlist[err_no];
 }
 
 #endif /* HAVE_STERRROR */


------------------------------------------------------------------------------
vRanger cuts backup time in half-while increasing security.
With the market-leading solution for virtual backup and recovery, 
you get blazing-fast, flexible, and affordable data protection.
Download your free trial now. 
http://p.sf.net/sfu/quest-d2dcopy1
_______________________________________________
Strace-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/strace-devel

Reply via email to