summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2003-11-04 13:15:47 +0000
committerChristopher Faylor <me@cgf.cx>2003-11-04 13:15:47 +0000
commitc35391d0d2b0c5fd057aa1ccd4c215a0082919d5 (patch)
treeea6825034113709a64ddd4833b0e4c10f08e9527 /winsup/cygwin
parent02bd05e386e9bac85d8c06125c2c90e1ebffa7f4 (diff)
downloadcygnal-c35391d0d2b0c5fd057aa1ccd4c215a0082919d5.tar.gz
cygnal-c35391d0d2b0c5fd057aa1ccd4c215a0082919d5.tar.bz2
cygnal-c35391d0d2b0c5fd057aa1ccd4c215a0082919d5.zip
* net.cc (dup_ent): Use IsBadStringPtr for alignment checks. Don't use a known
bad pointer.
Diffstat (limited to 'winsup/cygwin')
-rw-r--r--winsup/cygwin/ChangeLog5
-rw-r--r--winsup/cygwin/net.cc9
2 files changed, 9 insertions, 5 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 8eae5571c..beea371aa 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,8 @@
+2003-11-04 Christopher Faylor <cgf@redhat.com>
+
+ * net.cc (dup_ent): Use IsBadStringPtr for alignment checks. Don't use
+ a known bad pointer.
+
2003-11-03 Corinna Vinschen <corinna@vinschen.de>
* net.cc (dup_ent): Move Win 95 misalignment recogition before
diff --git a/winsup/cygwin/net.cc b/winsup/cygwin/net.cc
index f956cbd8f..835885b12 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)
{