Re: [patch 1/2] perf jit: add missing curly braces

From: Stephane Eranian
Date: Sat Jul 16 2016 - 12:30:58 EST


On Fri, Jul 15, 2016 at 2:07 PM, Dan Carpenter <dan.carpenter@xxxxxxxxxx> wrote:
> It doesn't change the runtime behavior, but my static checker complains
> that curly braces were intended.
>
> Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
>
This was clearly a bug. It did not fire when padding=0 because you
never come out of the loop with sret != 0.
If padding=0, then you execute the fwrite() and then the sret test is
just after, so this was working but I agree
this was not the intended code flow.
Thanks for tracking this down.

> diff --git a/tools/perf/jvmti/jvmti_agent.c b/tools/perf/jvmti/jvmti_agent.c
> index 3573f31..91bf333 100644
> --- a/tools/perf/jvmti/jvmti_agent.c
> +++ b/tools/perf/jvmti/jvmti_agent.c
> @@ -491,10 +491,11 @@ jvmti_write_debug_info(void *agent, uint64_t code, const char *file,
> if (sret != 1)
> goto error;
> }
> - if (padding_count)
> + if (padding_count) {
> sret = fwrite_unlocked(pad_bytes, padding_count, 1, fp);
> if (sret != 1)
> goto error;
> + }
>
> funlockfile(fp);
> return 0;