diff options
| author | Baptiste Daroussin <bapt@FreeBSD.org> | 2015-10-27 21:19:11 +0000 |
|---|---|---|
| committer | Baptiste Daroussin <bapt@FreeBSD.org> | 2015-10-27 21:19:11 +0000 |
| commit | 4e2fa78ea36ec2cf6583bc025b4127c5ea238fd2 (patch) | |
| tree | 776471e6ddbb557aac5a48779cb813f63c28b4d5 /tests/test_schema.c | |
| parent | 15b8b407ee0ee485e82a9de35932da2053f2c390 (diff) | |
Diffstat (limited to 'tests/test_schema.c')
| -rw-r--r-- | tests/test_schema.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/tests/test_schema.c b/tests/test_schema.c index 4f075dae8d68..39eb7f399125 100644 --- a/tests/test_schema.c +++ b/tests/test_schema.c @@ -40,20 +40,24 @@ read_stdin (char **buf) p = *buf; remain = size; - while ((ret = read (STDIN_FILENO, p, remain)) > 0) { + while ((ret = read (STDIN_FILENO, p, remain - 1)) > 0) { remain -= ret; p += ret; - if (remain == 0) { + + if (remain <= 1) { *buf = realloc (*buf, size * 2); if (*buf == NULL) { return -1; } - p = *buf + size; - remain = size; + + p = *buf + size - 1; + remain = size + 1; size *= 2; } } + *p = '\0'; + return ret; } |
