diff options
| author | Paolo Bonzini <pbonzini@redhat.com> | 2025-05-26 09:25:50 +0200 |
|---|---|---|
| committer | Paolo Bonzini <pbonzini@redhat.com> | 2025-06-05 20:24:51 +0200 |
| commit | 230a4894f45eac5fbd6bea8dc0dd54f84cf6c0fa (patch) | |
| tree | 171081e885e1d52583ff069a14787c72a0715109 /util/error.c | |
| parent | 8714d366e7e29d3ca8cebc8504e18c4cd7b5cf48 (diff) | |
| download | focaccia-qemu-230a4894f45eac5fbd6bea8dc0dd54f84cf6c0fa.tar.gz focaccia-qemu-230a4894f45eac5fbd6bea8dc0dd54f84cf6c0fa.zip | |
util/error: allow non-NUL-terminated err->src
Rust makes the current file available as a statically-allocated string, but without a NUL terminator. Allow this by storing an optional maximum length in the Error. Reviewed-by: Zhao Liu <zhao1.liu@intel.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'util/error.c')
| -rw-r--r-- | util/error.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/util/error.c b/util/error.c index e5bcb7c022..3449ecc0b9 100644 --- a/util/error.c +++ b/util/error.c @@ -24,8 +24,8 @@ Error *error_warn; static void error_handle(Error **errp, Error *err) { if (errp == &error_abort) { - fprintf(stderr, "Unexpected error in %s() at %s:%d:\n", - err->func, err->src, err->line); + fprintf(stderr, "Unexpected error in %s() at %.*s:%d:\n", + err->func, err->src_len, err->src, err->line); error_report("%s", error_get_pretty(err)); if (err->hint) { error_printf("%s", err->hint->str); @@ -67,6 +67,7 @@ static void error_setv(Error **errp, g_free(msg); } err->err_class = err_class; + err->src_len = -1; err->src = src; err->line = line; err->func = func; |