diff -urpN iptables-1.3.5.0/libipq/libipq.c iptables-1.3.5.1/libipq/libipq.c --- iptables-1.3.5.0/libipq/libipq.c 2005-07-28 16:53:11.000000000 +0200 +++ iptables-1.3.5.1/libipq/libipq.c 2006-09-21 22:12:41.000000000 +0200 @@ -366,13 +366,14 @@ char *ipq_errstr(void) void ipq_perror(const char *s) { + int e = errno; if (s) fputs(s, stderr); else fputs("ERROR", stderr); if (ipq_errno) fprintf(stderr, ": %s", ipq_errstr()); - if (errno) - fprintf(stderr, ": %s", strerror(errno)); + if (e) + fprintf(stderr, ": %s", strerror(e)); fputc('\n', stderr); } diff -urpN iptables-1.3.5.0/libiptc/libiptc.c iptables-1.3.5.1/libiptc/libiptc.c --- iptables-1.3.5.0/libiptc/libiptc.c 2006-01-30 09:43:09.000000000 +0100 +++ iptables-1.3.5.1/libiptc/libiptc.c 2006-09-21 23:22:33.000000000 +0200 @@ -1118,7 +1118,7 @@ const char *standard_target_map(int verd return LABEL_QUEUE; break; default: - fprintf(stderr, "ERROR: %d not a valid target)\n", + fprintf(stderr, "ERROR: %d not a valid target\n", verdict); abort(); break; @@ -2097,7 +2097,7 @@ TC_COMMIT(TC_HANDLE_T *handle) ret = setsockopt(sockfd, TC_IPPROTO, SO_SET_REPLACE, repl, sizeof(*repl) + repl->size); if (ret < 0) { - errno = ret; + /* errno = ret; */ goto out_free_newcounters; } @@ -2191,7 +2191,7 @@ TC_COMMIT(TC_HANDLE_T *handle) ret = setsockopt(sockfd, TC_IPPROTO, SO_SET_ADD_COUNTERS, newcounters, counterlen); if (ret < 0) { - errno = ret; + /* errno = ret; */ goto out_free_newcounters; } @@ -2225,7 +2225,7 @@ const char * TC_STRERROR(int err) { unsigned int i; - struct table_struct { + static const struct table_struct { void *fn; int err; const char *message;