Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Leap:42.3:Rings:1-MinimalX
mdadm
0010-mdadm-Specify-enough-length-when-write-to-...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0010-mdadm-Specify-enough-length-when-write-to-buffer.patch of Package mdadm
From ff9239ee3177630d62c7a58408992af7a779763c Mon Sep 17 00:00:00 2001 From: Xiao Ni <xni@redhat.com> Date: Fri, 17 Mar 2017 19:55:43 +0800 Subject: [PATCH] mdadm: Specify enough length when write to buffer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In Detail.c the buffer path in function Detail is defined as path[200], in fact the max lenth of content which needs to write to the buffer is 287. Because the length of dname of struct dirent is 255. During building it reports error: error: ā%sā directive writing up to 255 bytes into a region of size 189 [-Werror=format-overflow=] In function examine_super0 there is a buffer nb with length 5. But it need to show a int type argument. The lenght of max number of int is 10. So the buffer length should be 11. In human_size function the length of buf is 30. During building there is a error: output between 20 and 47 bytes into a destination of size 30. Change the length to 47. Signed-off-by: Xiao Ni <xni@redhat.com> Signed-off-by: Jes Sorensen <Jes.Sorensen@gmail.com> --- Detail.c | 2 +- super0.c | 2 +- util.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Detail.c b/Detail.c index 509b0d4..cb33794 100644 --- a/Detail.c +++ b/Detail.c @@ -575,7 +575,7 @@ This is pretty boring printf(" Member Arrays :"); while (dir && (de = readdir(dir)) != NULL) { - char path[200]; + char path[287]; char vbuf[1024]; int nlen = strlen(sra->sys_name); dev_t devid; diff --git a/super0.c b/super0.c index 938cfd9..f5b4507 100644 --- a/super0.c +++ b/super0.c @@ -231,7 +231,7 @@ static void examine_super0(struct supertype *st, char *homehost) d++) { mdp_disk_t *dp; char *dv; - char nb[5]; + char nb[11]; int wonly, failfast; if (d>=0) dp = &sb->disks[d]; else dp = &sb->this_disk; diff --git a/util.c b/util.c index f100972..32bd909 100644 --- a/util.c +++ b/util.c @@ -811,7 +811,7 @@ unsigned long calc_csum(void *super, int bytes) #ifndef MDASSEMBLE char *human_size(long long bytes) { - static char buf[30]; + static char buf[47]; /* We convert bytes to either centi-M{ega,ibi}bytes or * centi-G{igi,ibi}bytes, with appropriate rounding, -- 2.10.2
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor