From da9a42244c9e1656944c310e03e8c49fa4170dc1 Mon Sep 17 00:00:00 2001 From: cgf Date: Tue, 4 Nov 2003 13:15:47 +0000 Subject: [PATCH] * net.cc (dup_ent): Use IsBadStringPtr for alignment checks. Don't use a known bad pointer. --- winsup/cygwin/ChangeLog | 5 +++++ winsup/cygwin/net.cc | 9 ++++----- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 8eae5571c8..beea371aa4 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,8 @@ +2003-11-04 Christopher Faylor + + * net.cc (dup_ent): Use IsBadStringPtr for alignment checks. Don't use + a known bad pointer. + 2003-11-03 Corinna Vinschen * net.cc (dup_ent): Move Win 95 misalignment recogition before diff --git a/winsup/cygwin/net.cc b/winsup/cygwin/net.cc index f956cbd8f9..835885b12e 100644 --- a/winsup/cygwin/net.cc +++ b/winsup/cygwin/net.cc @@ -506,13 +506,12 @@ dup_ent (void *old, void *src0, struct_type type) { /* Windows 95 idiocy. Structure is misaligned on Windows 95. Kludge around this by trying a different pointer alignment. */ - if (IsBadReadPtr (src->s_proto, sizeof (src->s_proto)) - && !IsBadReadPtr (((pservent *) src)->s_proto, sizeof (src->s_proto))) - s_proto = ((pservent *) src)->s_proto; - else + if (!IsBadStringPtr (src->s_proto, 0x7fffffff)) s_proto = src->s_proto; + else if (!IsBadStringPtr (((pservent *) src)->s_proto, 0x7fffffff)) + s_proto = ((pservent *) src)->s_proto; + sz += (protolen = strlen_round (s_proto)); } - sz += (protolen = strlen_round (s_proto)); } else if (type == is_hostent) { -- 2.11.0