Drop whole buffer clearing (most messages at <100 bytes).
Just make sure we have always \0 terminated string for strlen() operations.
(before for PIPE_BUF sized messages this was not set).
Version 2.02.94 -
====================================
+ Ensure clvmd message is always \0 terminated after read.
Better detection of missing dmeventd fifo connection (2.02.93).
Add some close() and dev_close() error path backtraces.
For polling daemon reopen stdin,stdout,stderr to /dev/null.
int len;
int argslen;
int missing_len;
- char buffer[PIPE_BUF];
+ char buffer[PIPE_BUF + 1];
- memset(buffer, 0, PIPE_BUF);
- len = read(thisfd->fd, buffer, sizeof(buffer));
+ len = read(thisfd->fd, buffer, sizeof(buffer) - 1);
if (len == -1 && errno == EINTR)
return 1;
struct clvm_header *inheader;
int status;
+ buffer[len] = 0; /* Ensure \0 terminated */
inheader = (struct clvm_header *) buffer;
/* Fill in the client ID */