From patchwork Tue Apr 25 03:28:52 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Hao Zeng X-Patchwork-Id: 1773166 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.linux.it (client-ip=2001:1418:10:5::2; helo=picard.linux.it; envelope-from=ltp-bounces+incoming=patchwork.ozlabs.org@lists.linux.it; receiver=) Received: from picard.linux.it (picard.linux.it [IPv6:2001:1418:10:5::2]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Q56tK073Dz23v2 for ; Tue, 25 Apr 2023 13:29:10 +1000 (AEST) Received: from picard.linux.it (localhost [IPv6:::1]) by picard.linux.it (Postfix) with ESMTP id 8661C3CE58B for ; Tue, 25 Apr 2023 05:29:07 +0200 (CEST) X-Original-To: ltp@lists.linux.it Delivered-To: ltp@picard.linux.it Received: from in-6.smtp.seeweb.it (in-6.smtp.seeweb.it [217.194.8.6]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384)) (No client certificate requested) by picard.linux.it (Postfix) with ESMTPS id 47ACF3CB302 for ; Tue, 25 Apr 2023 05:29:04 +0200 (CEST) Received: from mailgw.kylinos.cn (mailgw.kylinos.cn [124.126.103.232]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by in-6.smtp.seeweb.it (Postfix) with ESMTPS id 777091400538 for ; Tue, 25 Apr 2023 05:29:00 +0200 (CEST) X-UUID: b99cefd8e11a46d9a26937e1a1238b14-20230425 X-CID-P-RULE: Release_Ham X-CID-O-INFO: VERSION:1.1.22, REQID:a6d69fee-2775-4c4d-8c78-7a0b218adf87, IP:10, URL:0,TC:0,Content:-25,EDM:0,RT:0,SF:-15,FILE:0,BULK:0,RULE:Release_Ham,AC TION:release,TS:-30 X-CID-INFO: VERSION:1.1.22, REQID:a6d69fee-2775-4c4d-8c78-7a0b218adf87, IP:10, UR L:0,TC:0,Content:-25,EDM:0,RT:0,SF:-15,FILE:0,BULK:0,RULE:Release_Ham,ACTI ON:release,TS:-30 X-CID-META: VersionHash:120426c, CLOUDID:ce3466a2-8fcb-430b-954a-ba3f00fa94a5, B ulkID:230425112855GBB3V8OE,BulkQuantity:0,Recheck:0,SF:24|17|19|44|102,TC: nil,Content:0,EDM:-3,IP:-2,URL:0,File:nil,Bulk:nil,QS:nil,BEC:nil,COL:0,OS I:0,OSA:0,AV:0 X-CID-BVR: 0,NGT X-CID-BAS: 0,NGT,0,_ X-UUID: b99cefd8e11a46d9a26937e1a1238b14-20230425 Received: from mail.kylinos.cn [(39.156.73.10)] by mailgw (envelope-from ) (Generic MTA) with ESMTP id 375452005; Tue, 25 Apr 2023 11:28:54 +0800 Received: from mail.kylinos.cn (localhost [127.0.0.1]) by mail.kylinos.cn (NSMail) with SMTP id BBFC9E0084A1; Tue, 25 Apr 2023 11:28:54 +0800 (CST) X-ns-mid: postfix-644748F6-66525442 Received: from zdzh5-QiTianM428-A376.. (unknown [172.20.12.253]) by mail.kylinos.cn (NSMail) with ESMTPA id 4291DE0084A1; Tue, 25 Apr 2023 11:28:53 +0800 (CST) From: Hao Zeng To: chrubis@suse.cz Date: Tue, 25 Apr 2023 11:28:52 +0800 Message-Id: <20230425032852.4095325-1-zenghao@kylinos.cn> X-Mailer: git-send-email 2.37.2 MIME-Version: 1.0 X-Virus-Scanned: clamav-milter 0.102.4 at in-6.smtp.seeweb.it X-Virus-Status: Clean X-Spam-Status: No, score=-0.0 required=7.0 tests=SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=disabled version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on in-6.smtp.seeweb.it Subject: [LTP] [PATCH v3] fs/doio:Use the snprintf function to prevent buffer X-BeenThere: ltp@lists.linux.it X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux Test Project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Hao Zeng , ltp@lists.linux.it Errors-To: ltp-bounces+incoming=patchwork.ozlabs.org@lists.linux.it Sender: "ltp" Use the snprintf function instead of sprintf in the write_log.c file Change the Wlog_Error_String from 256 to 2048 to solve the following compilation Alarm problem: warning: ‘%s’ directive output may be truncated writing up to 1023 bytes into a region of size 228 Signed-off-by: Hao Zeng Suggested-by: Cyril Hrubis --- testcases/kernel/fs/doio/write_log.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/testcases/kernel/fs/doio/write_log.c b/testcases/kernel/fs/doio/write_log.c index e8ef9c7cb..c06677fc6 100644 --- a/testcases/kernel/fs/doio/write_log.c +++ b/testcases/kernel/fs/doio/write_log.c @@ -87,7 +87,7 @@ /*#define PATH_MAX pathconf("/", _PC_PATH_MAX)*/ #endif -char Wlog_Error_String[256]; +char Wlog_Error_String[2048]; #if __STDC__ static int wlog_rec_pack(struct wlog_rec *wrec, char *buf, int flag); @@ -129,7 +129,7 @@ int wlog_open(struct wlog_file *wfile, int trunc, int mode) umask(omask); if (wfile->w_afd == -1) { - sprintf(Wlog_Error_String, + snprintf(Wlog_Error_String, sizeof(Wlog_Error_String), "Could not open write_log - open(%s, %#o, %#o) failed: %s\n", wfile->w_file, oflags, mode, strerror(errno)); return -1; @@ -141,7 +141,7 @@ int wlog_open(struct wlog_file *wfile, int trunc, int mode) oflags = O_RDWR; if ((wfile->w_rfd = open(wfile->w_file, oflags)) == -1) { - sprintf(Wlog_Error_String, + snprintf(Wlog_Error_String, sizeof(Wlog_Error_String), "Could not open write log - open(%s, %#o) failed: %s\n", wfile->w_file, oflags, strerror(errno)); close(wfile->w_afd); @@ -218,14 +218,14 @@ int wlog_record_write(struct wlog_file *wfile, struct wlog_rec *wrec, reclen += 2; if (write(wfile->w_afd, wbuf, reclen) == -1) { - sprintf(Wlog_Error_String, + snprintf(Wlog_Error_String, sizeof(Wlog_Error_String), "Could not write log - write(%s, %s, %d) failed: %s\n", wfile->w_file, wbuf, reclen, strerror(errno)); return -1; } else { offset = lseek(wfile->w_afd, 0, SEEK_CUR) - reclen; if (offset == -1) { - sprintf(Wlog_Error_String, + snprintf(Wlog_Error_String, sizeof(Wlog_Error_String), "Could not reposition file pointer - lseek(%s, 0, SEEK_CUR) failed: %s\n", wfile->w_file, strerror(errno)); return -1; @@ -233,13 +233,13 @@ int wlog_record_write(struct wlog_file *wfile, struct wlog_rec *wrec, } } else { if ((lseek(wfile->w_rfd, offset, SEEK_SET)) == -1) { - sprintf(Wlog_Error_String, + snprintf(Wlog_Error_String, sizeof(Wlog_Error_String), "Could not reposition file pointer - lseek(%s, %ld, SEEK_SET) failed: %s\n", wfile->w_file, offset, strerror(errno)); return -1; } else { if ((write(wfile->w_rfd, wbuf, reclen)) == -1) { - sprintf(Wlog_Error_String, + snprintf(Wlog_Error_String, sizeof(Wlog_Error_String), "Could not write log - write(%s, %s, %d) failed: %s\n", wfile->w_file, wbuf, reclen, strerror(errno)); @@ -274,14 +274,14 @@ int wlog_scan_backward(struct wlog_file *wfile, int nrecs, */ if ((lseek(fd, 0, SEEK_END)) == -1) { - sprintf(Wlog_Error_String, + snprintf(Wlog_Error_String, sizeof(Wlog_Error_String), "Could not reposition file pointer - lseek(%s, 0, SEEK_END) failed: %s\n", wfile->w_file, strerror(errno)); return -1; } offset = lseek(fd, 0, SEEK_CUR); if ((offset == -1)) { - sprintf(Wlog_Error_String, + snprintf(Wlog_Error_String, sizeof(Wlog_Error_String), "Could not reposition file pointer - lseek(%s, 0, SEEK_CUR) failed: %s\n", wfile->w_file, strerror(errno)); return -1; @@ -309,7 +309,7 @@ int wlog_scan_backward(struct wlog_file *wfile, int nrecs, * Move to the proper file offset, and read into buf */ if ((lseek(fd, offset, SEEK_SET)) == -1) { - sprintf(Wlog_Error_String, + snprintf(Wlog_Error_String, sizeof(Wlog_Error_String), "Could not reposition file pointer - lseek(%s, %d, SEEK_SET) failed: %s\n", wfile->w_file, offset, strerror(errno)); return -1; @@ -318,7 +318,7 @@ int wlog_scan_backward(struct wlog_file *wfile, int nrecs, nbytes = read(fd, bufstart, bufend - bufstart - leftover); if (nbytes == -1) { - sprintf(Wlog_Error_String, + snprintf(Wlog_Error_String, sizeof(Wlog_Error_String), "Could not read history file at offset %d - read(%d, %p, %d) failed: %s\n", offset, fd, bufstart, (int)(bufend - bufstart - leftover),