Feature #851 » 0028-fc_querysocket-Handle-fdopen-errors.patch
utility/netintf.c | ||
---|---|---|
}
|
||
/*********************************************************************//**
|
||
Writes buf to socket and returns the response in an fz_FILE.
|
||
Writes buf to socket and returns the response in a fz_FILE.
|
||
Use only on blocking sockets.
|
||
*************************************************************************/
|
||
fz_FILE *fc_querysocket(int sock, void *buf, size_t size)
|
||
... | ... | |
#ifdef HAVE_FDOPEN
|
||
fp = fdopen(sock, "r+b");
|
||
if (fp == nullptr) {
|
||
log_error("socket %d: failed to fdopen()", sock);
|
||
return nullptr;
|
||
}
|
||
if (fwrite(buf, 1, size, fp) != size) {
|
||
log_error("socket %d: write error", sock);
|
||
}
|
||
fflush(fp);
|
||
/* We don't use fc_closesocket() on sock here since when fp is closed
|
||
* sock will also be closed. fdopen doesn't dup the socket descriptor. */
|
||
/* We don't use fc_closesocket() on sock here since when fp is closed,
|
||
* sock will also be closed. fdopen() doesn't dup the socket descriptor. */
|
||
#else /* HAVE_FDOPEN */
|
||
{
|
||
char tmp[4096];
|