1 |
commit: 70676c12f78bcf99ebc29901a6db36cbee6044c9 |
2 |
Author: Fabian Groffen <grobian <AT> gentoo <DOT> org> |
3 |
AuthorDate: Thu Jan 2 14:04:19 2020 +0000 |
4 |
Commit: Fabian Groffen <grobian <AT> gentoo <DOT> org> |
5 |
CommitDate: Thu Jan 2 14:04:19 2020 +0000 |
6 |
URL: https://gitweb.gentoo.org/proj/portage-utils.git/commit/?id=70676c12 |
7 |
|
8 |
libq/tree: fix off-by-ones |
9 |
|
10 |
Signed-off-by: Fabian Groffen <grobian <AT> gentoo.org> |
11 |
|
12 |
libq/tree.c | 6 +++--- |
13 |
1 file changed, 3 insertions(+), 3 deletions(-) |
14 |
|
15 |
diff --git a/libq/tree.c b/libq/tree.c |
16 |
index e7914f1..186fb4d 100644 |
17 |
--- a/libq/tree.c |
18 |
+++ b/libq/tree.c |
19 |
@@ -912,7 +912,7 @@ tree_read_file_binpkg_xpak_cb( |
20 |
while (isspace((int)data[data_offset + data_len - 1])) |
21 |
data_len--; |
22 |
|
23 |
- if (len - pos < (size_t)data_len) { |
24 |
+ if (len - pos < (size_t)(data_len + 1)) { |
25 |
char *old_data = m->Q__data; |
26 |
len += (((data_len + 1) / BUFSIZ) + 1) * BUFSIZ; |
27 |
m->Q__data = xrealloc(m->Q__data, len); |
28 |
@@ -1028,7 +1028,7 @@ tree_pkg_meta_get_int(tree_pkg_ctx *pkg_ctx, size_t offset, const char *keyn) |
29 |
len = (size_t)m->Q__md5_; |
30 |
|
31 |
/* TODO: this is an exact copy from tree_read_file_binpkg_xpak_cb */ |
32 |
- if (len - pos < (size_t)s.st_size) { |
33 |
+ if (len - pos < (size_t)(s.st_size + 1)) { |
34 |
char *old_data = m->Q__data; |
35 |
len += (((s.st_size + 1) / BUFSIZ) + 1) * BUFSIZ; |
36 |
m->Q__data = xrealloc(m->Q__data, len); |
37 |
@@ -1049,7 +1049,7 @@ tree_pkg_meta_get_int(tree_pkg_ctx *pkg_ctx, size_t offset, const char *keyn) |
38 |
char *p = *key = m->Q__data + pos; |
39 |
p[s.st_size] = '\0'; |
40 |
while (s.st_size > 0 && isspace((int)p[s.st_size - 1])) |
41 |
- p[s.st_size--] = '\0'; |
42 |
+ p[--s.st_size] = '\0'; |
43 |
pos += s.st_size + 1; |
44 |
m->Q__eclasses_ = (char *)pos; |
45 |
} |