From patchwork Wed Nov 22 12:21:39 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Yao Qi X-Patchwork-Id: 24439 Received: (qmail 87209 invoked by alias); 22 Nov 2017 12:21:50 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 87119 invoked by uid 89); 22 Nov 2017 12:21:50 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-26.7 required=5.0 tests=BAYES_00, FREEMAIL_FROM, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KB_WAM_FROM_NAME_SINGLEWORD, RCVD_IN_DNSWL_NONE, SPF_PASS autolearn=ham version=3.3.2 spammy=H*RU:sk:static., Hx-spam-relays-external:sk:static. X-HELO: mail-wm0-f44.google.com Received: from mail-wm0-f44.google.com (HELO mail-wm0-f44.google.com) (74.125.82.44) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 22 Nov 2017 12:21:48 +0000 Received: by mail-wm0-f44.google.com with SMTP id b189so9928043wmd.0 for ; Wed, 22 Nov 2017 04:21:48 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=ojDBYCnOwMbhJJf0+KEXqt5yANjAIxSgzkpAjTJhYqs=; b=Dj1Ng8F/7AiXBccdh/EJMTX0fNngEvkf9x388xnVeu+BbVTdvvN5CW6nIdxy7Ez3AZ b93F/aZFYLaiSY99lOBnwqKsPr91+V4Noi+Ph9elxQT0Ahz3YabERHgdwN7kGLm6MV6w Ibc9VnZAXH750g1trP6hrmZH9xjkIP+J74MltLZyTx1kOHd3D4BD/kE14l9EJhmyGLZh DIQc5iuw3YT7VMZ8UXBaphay4VTu+htuJ/OwV8xOATN3sBwiiBKYff6rVl4B5EagRLby BiCws99VhajSCnWXNPQNV9lK8n21bdV1h01Mxxz+loeoz6z4lb0d4emvH1RqDdwXJ28L rs6Q== X-Gm-Message-State: AJaThX4u8D3M5oh2qNhDNKhGvLhuUUityUKTRCQd39bZnxTYt94nsY0b it48KqOub/UgjlIwqw+lU9Q/bw== X-Google-Smtp-Source: AGs4zMZaSfI1p1XOQFqQ+/uGsRKRorKYqYaISJzGrf15pBMAFHAeo89HJtKOarfvnUwpT/fSAdd+zA== X-Received: by 10.28.1.14 with SMTP id 14mr4195008wmb.51.1511353306561; Wed, 22 Nov 2017 04:21:46 -0800 (PST) Received: from E107787-LIN.cambridge.arm.com (static.42.136.251.148.clients.your-server.de. [148.251.136.42]) by smtp.gmail.com with ESMTPSA id s30sm7273691wrc.89.2017.11.22.04.21.45 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 22 Nov 2017 04:21:46 -0800 (PST) From: Yao Qi X-Google-Original-From: Yao Qi To: gdb-patches@sourceware.org Cc: msebor@redhat.com Subject: [PATCH 1/2 OBV] Fix build with GCC 8: strncpy -> memcpy Date: Wed, 22 Nov 2017 12:21:39 +0000 Message-Id: <1511353300-11688-2-git-send-email-yao.qi@linaro.org> In-Reply-To: <1511353300-11688-1-git-send-email-yao.qi@linaro.org> References: <1511353300-11688-1-git-send-email-yao.qi@linaro.org> MIME-Version: 1.0 X-IsSubscribed: yes Recent gcc 8 trunk emits the warning below, ../../../binutils-gdb/gdb/gdbserver/remote-utils.c:1204:14: error: ‘char* strncpy(char*, const char*, size_t)’ output truncated before terminating nul copying 6 bytes from a string of the same length [-Werror=stringop-truncation] strncpy (buf, "watch:", 6); ~~~~~~~~^~~~~~~~~~~~~~~~~~ ../../binutils-gdb/gdb/cli/cli-decode.c:1118:15: error: ‘char* strncpy(char*, const char*, size_t)’ specified bound depends on the length of the source argument [-Werror=stringop-overflow=] strncpy (cmdtype1 + 1, cmdtype, len - 1); ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../binutils-gdb/gdb/cli/cli-decode.c:1110:16: note: length computed here len = strlen (cmdtype); ~~~~~~~^~~~~~~~~ ../../binutils-gdb/gdb/cli/cli-decode.c:1120:15: error: ‘char* strncpy(char*, const char*, size_t)’ specified bound depends on the length of the source argument [-Werror=stringop-overflow=] strncpy (cmdtype2, cmdtype, len - 1); ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../binutils-gdb/gdb/cli/cli-decode.c:1110:16: note: length computed here len = strlen (cmdtype); ~~~~~~~^~~~~~~~~ ../../binutils-gdb/gdb/cp-namespace.c:1071:11: error: ‘char* strncpy(char*, const char*, size_t)’ output truncated before terminating nul copying 2 bytes from a string of the same length [-Werror=stringop-truncation] strncpy (full_name + scope_length, "::", 2); ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This patch fixes it by using memcpy instead of strncpy. gdb: 2017-11-22 Yao Qi * cli/cli-decode.c (help_list): Use memcpy instead of strncpy. * cp-namespace.c (cp_lookup_transparent_type_loop): Likewise. gdb/gdbserver: 2017-11-22 Yao Qi * remote-utils.c (prepare_resume_reply): Use memcpy. --- gdb/ChangeLog | 5 +++++ gdb/cli/cli-decode.c | 4 ++-- gdb/cp-namespace.c | 2 +- gdb/gdbserver/ChangeLog | 4 ++++ gdb/gdbserver/remote-utils.c | 2 +- 5 files changed, 13 insertions(+), 4 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 1c77dea..a9e7528 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2017-11-22 Yao Qi + + * cli/cli-decode.c (help_list): Use memcpy instead of strncpy. + * cp-namespace.c (cp_lookup_transparent_type_loop): Likewise. + 2017-11-21 Jerome Guitton * ravenscar-thread.c (ravenscar_wait): Update inferior ptid diff --git a/gdb/cli/cli-decode.c b/gdb/cli/cli-decode.c index b911097..6140a17 100644 --- a/gdb/cli/cli-decode.c +++ b/gdb/cli/cli-decode.c @@ -1084,9 +1084,9 @@ help_list (struct cmd_list_element *list, const char *cmdtype, if (len) { cmdtype1[0] = ' '; - strncpy (cmdtype1 + 1, cmdtype, len - 1); + memcpy (cmdtype1 + 1, cmdtype, len - 1); cmdtype1[len] = 0; - strncpy (cmdtype2, cmdtype, len - 1); + memcpy (cmdtype2, cmdtype, len - 1); strcpy (cmdtype2 + len - 1, " sub"); } diff --git a/gdb/cp-namespace.c b/gdb/cp-namespace.c index d8817c0..2a3ffef 100644 --- a/gdb/cp-namespace.c +++ b/gdb/cp-namespace.c @@ -1049,7 +1049,7 @@ cp_lookup_transparent_type_loop (const char *name, full_name = (char *) alloca (scope_length + 2 + strlen (name) + 1); strncpy (full_name, scope, scope_length); - strncpy (full_name + scope_length, "::", 2); + memcpy (full_name + scope_length, "::", 2); strcpy (full_name + scope_length + 2, name); return basic_lookup_transparent_type (full_name); diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index d891b2d..b53fe30 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,3 +1,7 @@ +2017-11-22 Yao Qi + + * remote-utils.c (prepare_resume_reply): Use memcpy. + 2017-11-19 Simon Marchi * linux-low.c (kill_one_lwp_callback): Return void, take diff --git a/gdb/gdbserver/remote-utils.c b/gdb/gdbserver/remote-utils.c index 2e4888a..2fdbb6f 100644 --- a/gdb/gdbserver/remote-utils.c +++ b/gdb/gdbserver/remote-utils.c @@ -1173,7 +1173,7 @@ prepare_resume_reply (char *buf, ptid_t ptid, CORE_ADDR addr; int i; - strncpy (buf, "watch:", 6); + memcpy (buf, "watch:", 6); buf += 6; addr = (*the_target->stopped_data_address) ();