chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
journal-remote: explain why source->buf cannot be null
[elogind.git]
/
src
/
journal-remote
/
journal-remote-parse.c
diff --git
a/src/journal-remote/journal-remote-parse.c
b/src/journal-remote/journal-remote-parse.c
index 65ef7668f1aa3b37eec72f5cec53c1357cffeb25..e8442d319e584ba27f541e09dad496a25268bfae 100644
(file)
--- a/
src/journal-remote/journal-remote-parse.c
+++ b/
src/journal-remote/journal-remote-parse.c
@@
-114,19
+114,24
@@
static int get_line(RemoteSource *source, char **line, size_t *size) {
/* we have to wait for some data to come to us */
return -EAGAIN;
/* we have to wait for some data to come to us */
return -EAGAIN;
+ /* We know that source->filled is at most DATA_SIZE_MAX, so if
+ we reallocate it, we'll increase the size at least a bit. */
+ assert_cc(DATA_SIZE_MAX < ENTRY_SIZE_MAX);
if (source->size - source->filled < LINE_CHUNK &&
if (source->size - source->filled < LINE_CHUNK &&
- !realloc_buffer(source,
- MIN(source->filled + LINE_CHUNK, ENTRY_SIZE_MAX)))
+ !realloc_buffer(source, MIN(source->filled + LINE_CHUNK, ENTRY_SIZE_MAX)))
return log_oom();
return log_oom();
+ assert(source->buf);
assert(source->size - source->filled >= LINE_CHUNK ||
source->size == ENTRY_SIZE_MAX);
assert(source->size - source->filled >= LINE_CHUNK ||
source->size == ENTRY_SIZE_MAX);
- n = read(source->fd, source->buf + source->filled,
+ n = read(source->fd,
+ source->buf + source->filled,
source->size - source->filled);
if (n < 0) {
if (errno != EAGAIN)
source->size - source->filled);
if (n < 0) {
if (errno != EAGAIN)
- log_error_errno(errno, "read(%d, ..., %zu): %m", source->fd,
+ log_error_errno(errno, "read(%d, ..., %zu): %m",
+ source->fd,
source->size - source->filled);
return -errno;
} else if (n == 0)
source->size - source->filled);
return -errno;
} else if (n == 0)