summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.com>2015-12-21 13:01:10 +1100
committerNeilBrown <neilb@suse.com>2015-12-21 13:01:10 +1100
commita0d12d51a7a12d14963f60d99bad6e71c7d0b202 (patch)
tree71a722757a46d697ec8adfacb420ad7b83120fe1
parent9da5a4897d392b4489689f548ea2b865e6f4b6e2 (diff)
parent1158f25eaeaa840307725588db79e01a96f54144 (diff)
downloadmdadm-a0d12d51a7a12d14963f60d99bad6e71c7d0b202.tar.gz
Merge branch 'fix-unlikely-potential-overflows' of https://github.com/sjvs/mdadm
-rw-r--r--Incremental.c8
-rw-r--r--mapfile.c2
2 files changed, 5 insertions, 5 deletions
diff --git a/Incremental.c b/Incremental.c
index 7afa7d7..24fd827 100644
--- a/Incremental.c
+++ b/Incremental.c
@@ -667,7 +667,7 @@ static void find_reject(int mdfd, struct supertype *st, struct mdinfo *sra,
* without thinking more */
for (d = sra->devs; d ; d = d->next) {
- char dn[10];
+ char dn[24]; // 2*11 bytes for ints (including sign) + colon + null byte
int dfd;
struct mdinfo info;
sprintf(dn, "%d:%d", d->disk.major, d->disk.minor);
@@ -1034,12 +1034,12 @@ static int array_try_spare(char *devname, int *dfdp, struct dev_policy *pol,
int mdfd = open_dev(chosen->sys_name);
if (mdfd >= 0) {
struct mddev_dev devlist;
- char devname[20];
+ char chosen_devname[24]; // 2*11 for int (including signs) + colon + null
devlist.next = NULL;
devlist.used = 0;
devlist.writemostly = 0;
- devlist.devname = devname;
- sprintf(devname, "%d:%d", major(stb.st_rdev),
+ devlist.devname = chosen_devname;
+ sprintf(chosen_devname, "%d:%d", major(stb.st_rdev),
minor(stb.st_rdev));
devlist.disposition = 'a';
close(dfd);
diff --git a/mapfile.c b/mapfile.c
index 41599df..243ded1 100644
--- a/mapfile.c
+++ b/mapfile.c
@@ -176,7 +176,7 @@ void map_read(struct map_ent **melp)
{
FILE *f;
char buf[8192];
- char path[200];
+ char path[201];
int uuid[4];
char devnm[32];
char metadata[30];