The input buffer to compress_write() should be const, and is better defined as void * so the caller doesn't have to cast.
--- compress.c | 7 ++++--- include/tinycompress/tinycompress.h | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/compress.c b/compress.c index 01fb3f0..5429754 100644 --- a/compress.c +++ b/compress.c @@ -312,11 +312,12 @@ int compress_get_tstamp(struct compress *compress, return 0; }
-int compress_write(struct compress *compress, char *buf, unsigned int size) +int compress_write(struct compress *compress, const void *buf, unsigned int size) { struct snd_compr_avail avail; struct pollfd fds; int to_write, written, total = 0, ret; + const char* cbuf = buf;
if (!(compress->flags & COMPRESS_IN)) return oops(compress, -EINVAL, "Invalid flag set"); @@ -355,12 +356,12 @@ int compress_write(struct compress *compress, char *buf, unsigned int size) to_write = avail.avail; else to_write = size; - written = write(compress->fd, buf, to_write); + written = write(compress->fd, cbuf, to_write); if (written < 0) return oops(compress, errno, "write failed!");
size -= written; - buf += written; + cbuf += written; total += written; } return total; diff --git a/include/tinycompress/tinycompress.h b/include/tinycompress/tinycompress.h index b1fbc65..49c0ff2 100644 --- a/include/tinycompress/tinycompress.h +++ b/include/tinycompress/tinycompress.h @@ -126,7 +126,7 @@ int compress_get_tstamp(struct compress *compress, * @buf: pointer to data * @size: number of bytes to be written */ -int compress_write(struct compress *compress, char *buf, unsigned int size); +int compress_write(struct compress *compress, const void *buf, unsigned int size);
/* * compress_read: read data from the compress stream