This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch master updated. glibc-2.21-367-geb28611
- From: sje at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 19 May 2015 20:09:21 -0000
- Subject: GNU C Library master sources branch master updated. glibc-2.21-367-geb28611
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".
The branch, master has been updated
via eb286115b170893563f502b9e3d28e169abd8dcc (commit)
from 265cbed8e73b23e3b38ada6cc42482c53a216224 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=eb286115b170893563f502b9e3d28e169abd8dcc
commit eb286115b170893563f502b9e3d28e169abd8dcc
Author: Steve Ellcey <sellcey@mips.com>
Date: Tue May 19 13:09:01 2015 -0700
* inet/rcmd.c (rresvport_af): Change ss to anonymous union
in order to avoid strict alias warnings.
(iruserok_af): Ditto for ra.
diff --git a/ChangeLog b/ChangeLog
index 4268eb7..5080370 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2015-05-19 Paul Eggert <eggert@cs.ucla.edu>
+ Steve Ellcey <sellcey@imgtec.com>
+
+ * inet/rcmd.c (rresvport_af): Change ss to anonymous union
+ in order to avoid strict alias warnings.
+ (iruserok_af): Ditto for ra.
+
2015-05-19 James Lemke <jwlemke@codesourcery.com>
[BZ #17581]
diff --git a/inet/rcmd.c b/inet/rcmd.c
index acacaa0..98b3735 100644
--- a/inet/rcmd.c
+++ b/inet/rcmd.c
@@ -114,10 +114,10 @@ rcmd_af(ahost, rport, locuser, remuser, cmd, fd2p, af)
struct addrinfo hints, *res, *ai;
union
{
- struct sockaddr sa;
- struct sockaddr_storage ss;
- struct sockaddr_in sin;
- struct sockaddr_in6 sin6;
+ struct sockaddr sa;
+ struct sockaddr_storage ss;
+ struct sockaddr_in sin;
+ struct sockaddr_in6 sin6;
} from;
struct pollfd pfd[2];
int32_t oldmask;
@@ -374,7 +374,11 @@ rresvport_af(alport, family)
int *alport;
sa_family_t family;
{
- struct sockaddr_storage ss;
+ union {
+ struct sockaddr generic;
+ struct sockaddr_in in;
+ struct sockaddr_in6 in6;
+ } ss;
int s;
size_t len;
uint16_t *sport;
@@ -382,11 +386,11 @@ rresvport_af(alport, family)
switch(family){
case AF_INET:
len = sizeof(struct sockaddr_in);
- sport = &((struct sockaddr_in *)&ss)->sin_port;
+ sport = &ss.in.sin_port;
break;
case AF_INET6:
len = sizeof(struct sockaddr_in6);
- sport = &((struct sockaddr_in6 *)&ss)->sin6_port;
+ sport = &ss.in6.sin6_port;
break;
default:
__set_errno (EAFNOSUPPORT);
@@ -398,9 +402,9 @@ rresvport_af(alport, family)
memset (&ss, '\0', sizeof(ss));
#ifdef SALEN
- ss.__ss_len = len;
+ ss.generic.__ss_len = len;
#endif
- ss.ss_family = family;
+ ss.generic.sa_family = family;
/* Ignore invalid values. */
if (*alport < IPPORT_RESERVED / 2)
@@ -411,7 +415,7 @@ rresvport_af(alport, family)
int start = *alport;
do {
*sport = htons((uint16_t) *alport);
- if (__bind(s, (struct sockaddr *)&ss, len) >= 0)
+ if (__bind(s, &ss.generic, len) >= 0)
return s;
if (errno != EADDRINUSE) {
(void)__close(s);
@@ -604,27 +608,29 @@ iruserok_af (raddr, superuser, ruser, luser, af)
const char *ruser, *luser;
sa_family_t af;
{
- struct sockaddr_storage ra;
+ union {
+ struct sockaddr generic;
+ struct sockaddr_in in;
+ struct sockaddr_in6 in6;
+ } ra;
size_t ralen;
memset (&ra, '\0', sizeof(ra));
switch (af){
case AF_INET:
- ra.ss_family = AF_INET;
- memcpy (&(((struct sockaddr_in *)&ra)->sin_addr), raddr,
- sizeof(struct in_addr));
+ ra.in.sin_family = AF_INET;
+ memcpy (&ra.in.sin_addr, raddr, sizeof(struct in_addr));
ralen = sizeof(struct sockaddr_in);
break;
case AF_INET6:
- ra.ss_family = AF_INET6;
- memcpy (&(((struct sockaddr_in6 *)&ra)->sin6_addr), raddr,
- sizeof(struct in6_addr));
+ ra.in6.sin6_family = AF_INET6;
+ memcpy (&ra.in6.sin6_addr, raddr, sizeof(struct in6_addr));
ralen = sizeof(struct sockaddr_in6);
break;
default:
return 0;
}
- return ruserok_sa ((struct sockaddr *)&ra, ralen, superuser, ruser, luser);
+ return ruserok_sa (&ra.generic, ralen, superuser, ruser, luser);
}
libc_hidden_def (iruserok_af)
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 7 +++++++
inet/rcmd.c | 42 ++++++++++++++++++++++++------------------
2 files changed, 31 insertions(+), 18 deletions(-)
hooks/post-receive
--
GNU C Library master sources