summaryrefslogtreecommitdiffstats
path: root/Modules/socketmodule.c
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>1992-12-14 16:59:51 (GMT)
committerGuido van Rossum <guido@python.org>1992-12-14 16:59:51 (GMT)
commit5f59d6018e1b49c3bc581a0f69aa2bb1c88ae52b (patch)
tree08018b39686e5a4d0d045916b1677b254cde9451 /Modules/socketmodule.c
parent8de83e041cff919ebf7150c5c9a5e0e00e7d9dbe (diff)
downloadcpython-5f59d6018e1b49c3bc581a0f69aa2bb1c88ae52b.zip
cpython-5f59d6018e1b49c3bc581a0f69aa2bb1c88ae52b.tar.gz
cpython-5f59d6018e1b49c3bc581a0f69aa2bb1c88ae52b.tar.bz2
* mymalloc.h: always allocate one extra byte, since some malloc's
return NULL for malloc(0) or realloc(p, 0). (This should be done differently than wasting one byte, but alas...) * Moved "add'l libraries" option in Makefile to an earlier place. * Remove argument compatibility hacks (b) and (c). * Add grey2mono, dither2mono and mono2grey to imageop. * Dup the fd in socket.fromfd(). * Added new modules mpz, md5 (by JH, requiring GNU MP 1.2). Affects Makefile and config.c. * socketmodule.c: added socket.fromfd(fd, family, type, [proto]), converted socket() to use of getargs().
Diffstat (limited to 'Modules/socketmodule.c')
-rw-r--r--Modules/socketmodule.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c
index c66d38c..c72c9fd 100644
--- a/Modules/socketmodule.c
+++ b/Modules/socketmodule.c
@@ -975,6 +975,10 @@ socket_fromfd(self, args)
if (!getargs(args, "(iiii)", &fd, &family, &type, &proto))
return NULL;
}
+ /* Dup the fd so it and the socket can be closed independently */
+ fd = dup(fd);
+ if (fd < 0)
+ return socket_error();
s = newsockobject(fd, family, type, proto);
/* From now on, ignore SIGPIPE and let the error checking
do the work. */