The input buffer to compress_write() should be const, and is better defined as void * so the caller doesn't have to cast.
diff --git a/compress.c b/compress.c index 19b9366..ee11988 100644 --- a/compress.c +++ b/compress.c @@ -299,11 +299,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"); @@ -343,12 +344,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!\n");
size -= written; - buf += written; + cbuf += written; total += written; } return total; diff --git a/include/tinycompress/tinycompress.h b/include/tinycompress/tinycompress.h index 8a98527..e285bd4 100644 --- a/include/tinycompress/tinycompress.h +++ b/include/tinycompress/tinycompress.h @@ -125,7 +125,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