From: Gustavo Lopes Date: Mon, 5 Nov 2012 16:35:46 +0000 (+0100) Subject: Check return of fstat() X-Git-Tag: php-5.5.0alpha5~43^2~11^2~15 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5bf7b08efd691780f421e0b4f176404fe3a80b2c;p=php Check return of fstat() --- diff --git a/ext/sockets/sendrecvmsg.c b/ext/sockets/sendrecvmsg.c index 4436d18e84..16330e0ded 100644 --- a/ext/sockets/sendrecvmsg.c +++ b/ext/sockets/sendrecvmsg.c @@ -1387,7 +1387,12 @@ static void to_zval_read_fd_array(const char *data, zval *zv, res_context *ctx) fd = *((int *)data + i); /* determine whether we have a socket */ - fstat(fd, &statbuf); + if (fstat(fd, &statbuf) == -1) { + do_to_zval_err(ctx, "error creating resource for received file " + "descriptor %d: fstat() call failed with errno %d", fd, errno); + efree(elem); + return; + } if (S_ISSOCK(statbuf.st_mode)) { php_socket *sock = socket_import_file_descriptor(fd); zend_register_resource(elem, sock, php_sockets_le_socket());