Projects
openEuler:24.03:SP1:Everything
m4
_service:tar_scm:backport-output-Avoid-tickling...
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File _service:tar_scm:backport-output-Avoid-tickling-UBSAN-with-memcpy-dest-NULL-0.patch of Package m4
From a886ea40a29a08954ff80772e267828a1d440cc9 Mon Sep 17 00:00:00 2001 From: Eric Blake <eblake@redhat.com> Date: Fri, 13 Jan 2023 16:27:54 -0600 Subject: [PATCH] output: Avoid tickling UBSAN with memcpy(dest, NULL, 0) Even though all libc handle it sanely (because size 0 says there is nothing to copy), NULL is not a valid source pointer per a strict reading of C, so UBSAN flags it: +output.c:511:9: runtime error: null pointer passed as argument 2, which is declared to never be null * src/output.c (make_room_for): Skip no-op memcpy. Fixes: https://savannah.gnu.org/support/index.php?110809 Reported-by: Sam James --- src/output.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/output.c b/src/output.c index 956089b1..6dc8280a 100644 --- a/src/output.c +++ b/src/output.c @@ -508,7 +508,8 @@ make_room_for (int length) { char *buffer = output_diversion->u.buffer; output_diversion->u.buffer = xcharalloc ((size_t) wanted_size); - memcpy (output_diversion->u.buffer, buffer, output_diversion->used); + if (output_diversion->used) + memcpy (output_diversion->u.buffer, buffer, output_diversion->used); free (buffer); } -- 2.33.0
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.
浙ICP备2022010568号-2