X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Frrd_open.c;h=4ee68a67f65e17ca0f1d5e2e975f69e186f7dee0;hb=7769bc2e3878d617cacab27d0839adc5995979ad;hp=c6a2d7d9d49f09a65eaa01f263e23975c97a4064;hpb=f972da18c85ebeb8591f585e7480fae9c1c5c380;p=rrdtool.git diff --git a/src/rrd_open.c b/src/rrd_open.c index c6a2d7d..4ee68a6 100644 --- a/src/rrd_open.c +++ b/src/rrd_open.c @@ -469,7 +469,7 @@ inline ssize_t rrd_read( /* write count bytes from buffer buf to the current position * rrd_file->pos of rrd_file->fd. - * Returns the number of bytes written. */ + * Returns the number of bytes written or <0 on error. */ inline ssize_t rrd_write( rrd_file_t *rrd_file, @@ -477,6 +477,10 @@ inline ssize_t rrd_write( size_t count) { #ifdef HAVE_MMAP + if (count == 0) + return 0; + if (buf == NULL) + return -1; /* EINVAL */ memcpy(rrd_file->file_start + rrd_file->pos, buf, count); rrd_file->pos += count; return count; /* mimmic write() semantics */