X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=net.c;h=d4472c0e2805ecb898ef4caae85a96980fe6d447;hp=5b754111ed54e892a5f6f0c26aa554414d3bfca1;hb=258534d8a29be72e529acdbf4daf54d6cd8bf5c7;hpb=198129e07ce4322b8f60c8e3b1062dc4ebabc083 diff --git a/net.c b/net.c index 5b754111..d4472c0e 100644 --- a/net.c +++ b/net.c @@ -189,8 +189,11 @@ int recv_buffer(int fd, char *buf, ssize_t size) { int n; - if ((n = recv_bin_buffer(fd, buf, size - 1)) >= 0) + n = recv_bin_buffer(fd, buf, size - 1); + if (n >= 0) buf[n] = '\0'; + else + *buf = '\0'; return n; } @@ -344,7 +347,7 @@ int recv_cred_buffer(int fd, char *buf, size_t size) { return recv_buffer(fd, buf, size) > 0? 1 : -E_RECVMSG; } -#else HAVE_UCRED +#else /* HAVE_UCRED */ /** * send NULL terminated buffer and Unix credentials of the current process * @@ -514,8 +517,8 @@ int recv_pattern(int fd, const char *pattern, size_t bufsize) goto out; ret = 1; out: - free(buf); if (ret < 0) - PARA_NOTICE_LOG("did not receive pattern '%s'\n", buf); + PARA_NOTICE_LOG("did not receive pattern '%s'\n", pattern); + free(buf); return ret; }