cproc

Unnamed repository; edit this file 'description' to name the repository.
git clone git://git.nihaljere.xyz/cproc
Log | Files | Refs | Submodules | README | LICENSE

commit 413034296ee8919c50a632da80237bcb1e106646
parent 96fa8b352148f3843abe4f95958d765e40089f9b
Author: Michael Forney <mforney@mforney.org>
Date:   Fri, 22 Feb 2019 23:45:48 -0800

Fix use of uninitialized character in string array

String data in expressions is just an array and is not NULL-terminated.

Diffstat:
Mqbe.c | 2+-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/qbe.c b/qbe.c @@ -882,7 +882,7 @@ funcinit(struct function *func, struct declaration *d, struct initializer *init) for (; init; init = init->next) { zero(func, d->value, d->type->align, offset, init->start); if (init->expr->kind == EXPRSTRING) { - for (i = 0; i <= init->expr->string.size && i < init->end - init->start; ++i) { + for (i = 0; i < init->expr->string.size && i < init->end - init->start; ++i) { dst = funcinst(func, IADD, &iptr, (struct value *[]){d->value, mkintconst(&iptr, init->start + i)}); funcinst(func, ISTOREB, NULL, (struct value *[]){mkintconst(&i8, init->expr->string.data[i]), dst}); }