Skip to content

Commit 7145774

Browse files
authored
Merge pull request #2095 from rhc54/topic/argv
Avoid zero byte malloc in argv_join_range
2 parents 3c6c901 + de48293 commit 7145774

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

src/util/argv.c

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
*
1616
* Copyright (c) 2015 Research Organization for Information Science
1717
* and Technology (RIST). All rights reserved.
18+
* Copyright (c) 2021 Nanook Consulting. All rights reserved.
1819
* $COPYRIGHT$
1920
*
2021
* Additional copyrights may follow
@@ -372,7 +373,7 @@ char *pmix_argv_join_range(char **argv, size_t start, size_t end, int delimiter)
372373

373374
/* Bozo case */
374375

375-
if (NULL == argv || NULL == argv[0] || (int)start > pmix_argv_count(argv)) {
376+
if (NULL == argv || NULL == argv[0] || (int)start >= pmix_argv_count(argv)) {
376377
return strdup("");
377378
}
378379

@@ -383,10 +384,15 @@ char *pmix_argv_join_range(char **argv, size_t start, size_t end, int delimiter)
383384
str_len += strlen(*p) + 1;
384385
}
385386

387+
if (0 == str_len) {
388+
return strdup("");
389+
}
390+
386391
/* Allocate the string. */
387392

388-
if (NULL == (str = (char*) malloc(str_len)))
393+
if (NULL == (str = (char*) malloc(str_len))) {
389394
return NULL;
395+
}
390396

391397
/* Loop filling in the string. */
392398

0 commit comments

Comments
 (0)