libbluray | branch: master | hpi1 <[email protected]> | Sun Aug 21 15:45:02 2016 +0300| [0d187b53540698a824396b1495004c88c8fb511a] | committer: hpi1
mpls_dump: check allocs > http://git.videolan.org/gitweb.cgi/libbluray.git/?a=commit;h=0d187b53540698a824396b1495004c88c8fb511a --- src/devtools/mpls_dump.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/devtools/mpls_dump.c b/src/devtools/mpls_dump.c index de7da0e..547b947 100644 --- a/src/devtools/mpls_dump.c +++ b/src/devtools/mpls_dump.c @@ -160,10 +160,11 @@ _mk_path(const char *base, const char *sub) size_t n1 = strlen(base); size_t n2 = strlen(sub); char *result = (char*)malloc(n1 + n2 + strlen(DIR_SEP) + 1); - strcpy(result, base); - strcat(result, DIR_SEP); - strcat(result, sub); - + if (result) { + strcpy(result, base); + strcat(result, DIR_SEP); + strcat(result, sub); + } return result; } @@ -762,6 +763,9 @@ main(int argc, char *argv[]) } if (dir != NULL) { char **dirlist = (char**)calloc(10001, sizeof(char*)); + if (!dirlist) { + continue; + } struct dirent *ent; int jj = 0; for (ent = readdir(dir); ent != NULL; ent = readdir(dir)) { @@ -771,6 +775,9 @@ main(int argc, char *argv[]) for (jj = 0; dirlist[jj] != NULL && pl_ii < 1000; jj++) { char *name = NULL; name = _mk_path(path, dirlist[jj]); + if (name == NULL) { + continue; + } free(dirlist[jj]); if (stat(name, &st)) { free(name); _______________________________________________ libbluray-devel mailing list [email protected] https://mailman.videolan.org/listinfo/libbluray-devel
