From: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
To: John.C.Harrison@Intel.com, IGT-Dev@Lists.FreeDesktop.Org
Cc: Intel-GFX@Lists.FreeDesktop.Org
Subject: Re: [Intel-gfx] [PATCH i-g-t 5/8] tests/i915/gem_exec_capture: Check for memory allocation failure
Date: Wed, 3 Nov 2021 14:00:44 +0000 [thread overview]
Message-ID: <9f929931-a782-7cfa-dbe0-1e7080eb75c8@linux.intel.com> (raw)
In-Reply-To: <20211021234044.3071069-6-John.C.Harrison@Intel.com>
On 22/10/2021 00:40, John.C.Harrison@Intel.com wrote:
> From: John Harrison <John.C.Harrison@Intel.com>
>
> The sysfs file read helper does not actually report any errors if a
> realloc fails. It just silently returns a 'valid' but truncated
> buffer. This then leads to the decode of the buffer failing in random
> ways. So, add a check for ENOMEM being generated during the read.
>
> Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
> ---
> tests/i915/gem_exec_capture.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/tests/i915/gem_exec_capture.c b/tests/i915/gem_exec_capture.c
> index e373d24ed..8997125ee 100644
> --- a/tests/i915/gem_exec_capture.c
> +++ b/tests/i915/gem_exec_capture.c
> @@ -131,9 +131,11 @@ static int check_error_state(int dir, struct offset *obj_offsets, int obj_count,
> char *error, *str;
> int blobs = 0;
>
> + errno = 0;
> error = igt_sysfs_get(dir, "error");
> igt_sysfs_set(dir, "error", "Begone!");
> igt_assert(error);
> + igt_assert(errno != ENOMEM);
igt_sysfs_get:
len = 64;
...
newbuf = realloc(buf, 2*len);
Maybe the problem is doubling goes out of hand. How big are your
buffers? Perhaps you could improve the library function instead to grow
less aggressively.
And at the same time perhaps the bug is this:
if (igt_debug_on(!newbuf))
break;
...
return buf;
So failures to grow the buffer are ignored, while failure to allocate
the initial one are not. Perhaps both should return NULL and then
callers would not be surprised.
Or you think someone relies on this current odd behaviour?
Regards,
Tvrtko
> igt_debug("%s\n", error);
>
> /* render ring --- user = 0x00000000 ffffd000 */
>
next prev parent reply other threads:[~2021-11-03 14:00 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-10-21 23:40 [Intel-gfx] [PATCH i-g-t 0/8] Fixes for gem_exec_capture John.C.Harrison
2021-10-21 23:40 ` [Intel-gfx] [PATCH i-g-t 1/8] tests/i915/gem_exec_capture: Remove pointless assert John.C.Harrison
2021-10-29 2:14 ` [Intel-gfx] [igt-dev] " Matthew Brost
2021-11-03 13:50 ` [Intel-gfx] " Tvrtko Ursulin
2021-11-03 18:44 ` John Harrison
2021-11-04 9:14 ` Tvrtko Ursulin
2021-10-21 23:40 ` [Intel-gfx] [PATCH i-g-t 2/8] tests/i915/gem_exec_capture: Cope with larger page sizes John.C.Harrison
2021-10-29 17:39 ` [Intel-gfx] [igt-dev] " Matthew Brost
2021-10-30 0:32 ` John Harrison
2021-11-02 23:18 ` Matthew Brost
2021-10-21 23:40 ` [Intel-gfx] [PATCH i-g-t 3/8] tests/i915/gem_exec_capture: Make the error decode a common helper John.C.Harrison
2021-10-29 2:34 ` Matthew Brost
2021-10-21 23:40 ` [Intel-gfx] [PATCH i-g-t 4/8] tests/i915/gem_exec_capture: Use contexts and engines properly John.C.Harrison
2021-11-02 23:34 ` Matthew Brost
2021-11-03 1:45 ` John Harrison
2021-11-03 9:36 ` Petri Latvala
2021-11-03 18:49 ` John Harrison
2021-11-04 6:40 ` Petri Latvala
2021-10-21 23:40 ` [Intel-gfx] [PATCH i-g-t 5/8] tests/i915/gem_exec_capture: Check for memory allocation failure John.C.Harrison
2021-10-29 2:20 ` Matthew Brost
2021-11-03 14:00 ` Tvrtko Ursulin [this message]
2021-11-03 18:36 ` John Harrison
2021-10-21 23:40 ` [Intel-gfx] [PATCH i-g-t 6/8] lib/igt_sysfs: Support large files John.C.Harrison
2021-10-29 2:46 ` [Intel-gfx] [igt-dev] " Matthew Brost
2021-10-21 23:40 ` [Intel-gfx] [PATCH i-g-t 7/8] lib/igt_gt: Allow per engine reset testing John.C.Harrison
2021-11-03 0:47 ` Matthew Brost
2021-10-21 23:40 ` [Intel-gfx] [PATCH i-g-t 8/8] tests/i915/gem_exec_capture: Update to support GuC based resets John.C.Harrison
2021-10-29 2:54 ` Matthew Brost
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=9f929931-a782-7cfa-dbe0-1e7080eb75c8@linux.intel.com \
--to=tvrtko.ursulin@linux.intel.com \
--cc=IGT-Dev@Lists.FreeDesktop.Org \
--cc=Intel-GFX@Lists.FreeDesktop.Org \
--cc=John.C.Harrison@Intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox