Fix memory leaks
* Delete/free as appropriate Most cases involve not freeing memory after encountering error or unexpected situation (identified via cppcheck static analysis) Change-Id: I90ba2fca518b00d2dfa9ec1ddbcebe1920a34b7c Reviewed-on: https://review.haiku-os.org/c/haiku/+/1038 Reviewed-by: waddlesplash <waddlesplash@gmail.com>
This commit is contained in:
parent
f0ba8f6aca
commit
40ee778c63
@ -735,6 +735,7 @@ main(int argc, const char *const *argv)
|
||||
const char *destination = files[fileCount];
|
||||
files[fileCount] = NULL;
|
||||
copy_files(files, fileCount, destination, parameters);
|
||||
delete[] files;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -369,6 +369,7 @@ main(int argc, const char* const* argv)
|
||||
execvp("zip", zipArgs);
|
||||
|
||||
fprintf(stderr, "Error: Failed exec*() zip: %s\n", strerror(errno));
|
||||
delete[] rootNodes;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
@ -130,6 +130,7 @@ main(int argc, char **argv)
|
||||
if (read(fd, buffer, stat.st_size) < 0) {
|
||||
fprintf(stderr, "Could not read from fortune file: %s\n",
|
||||
strerror(errno));
|
||||
free(buffer);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -148,6 +149,7 @@ main(int argc, char **argv)
|
||||
|
||||
if (!count) {
|
||||
printf("Out of cookies...\n");
|
||||
free(buffer);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -168,5 +170,6 @@ main(int argc, char **argv)
|
||||
}
|
||||
|
||||
puts(buffer + start);
|
||||
free(buffer)
|
||||
return 0;
|
||||
}
|
||||
|
@ -672,5 +672,7 @@ main(int argc, const char *const *argv)
|
||||
close(fd);
|
||||
}
|
||||
|
||||
delete[] files;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -309,5 +309,7 @@ main(int argc, const char *const *argv)
|
||||
overwrite);
|
||||
}
|
||||
|
||||
delete[] inputFiles;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -85,7 +85,7 @@ check_mime_type(const char *type)
|
||||
if (type) {
|
||||
if (!BMimeType::IsValid(type)) {
|
||||
fprintf(stderr, "\"%s\" is no valid MIME type.\n", type);
|
||||
|
||||
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
@ -104,7 +104,7 @@ main(int argc, const char *const *argv)
|
||||
const char *type = NULL;
|
||||
const char *signature = NULL;
|
||||
const char *preferredApp = NULL;
|
||||
|
||||
|
||||
// parse the arguments
|
||||
for (int argi = 1; argi < argc; ) {
|
||||
const char *arg = argv[argi++];
|
||||
@ -141,7 +141,7 @@ main(int argc, const char *const *argv)
|
||||
if (fileCount == 0) {
|
||||
fprintf(stderr, "Error: No file specified.\n");
|
||||
print_usage_and_exit(true);
|
||||
}
|
||||
}
|
||||
|
||||
// check for valid MIME types
|
||||
check_mime_type(preferredApp);
|
||||
@ -237,5 +237,7 @@ main(int argc, const char *const *argv)
|
||||
}
|
||||
}
|
||||
|
||||
delete[] files;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -452,8 +452,10 @@ Services::_LaunchService(struct service& service, int socket)
|
||||
}
|
||||
args[service.arguments.size()] = NULL;
|
||||
|
||||
if (execv(service.arguments[0].c_str(), (char* const*)args) < 0)
|
||||
if (execv(service.arguments[0].c_str(), (char* const*)args) < 0) {
|
||||
free(args);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
// we'll never trespass here
|
||||
} else {
|
||||
|
@ -1122,6 +1122,7 @@ private:
|
||||
TraceFilter* filter = new(&fFilters[fFilterCount++]) NotTraceFilter;
|
||||
if ((filter->fSubFilters.first = _ParseExpression()) != NULL)
|
||||
return filter;
|
||||
delete(filter);
|
||||
return NULL;
|
||||
} else if (strcmp(token, "and") == 0) {
|
||||
TraceFilter* filter = new(&fFilters[fFilterCount++]) AndTraceFilter;
|
||||
@ -1129,6 +1130,7 @@ private:
|
||||
&& (filter->fSubFilters.second = _ParseExpression()) != NULL) {
|
||||
return filter;
|
||||
}
|
||||
delete(filter);
|
||||
return NULL;
|
||||
} else if (strcmp(token, "or") == 0) {
|
||||
TraceFilter* filter = new(&fFilters[fFilterCount++]) OrTraceFilter;
|
||||
@ -1136,6 +1138,7 @@ private:
|
||||
&& (filter->fSubFilters.second = _ParseExpression()) != NULL) {
|
||||
return filter;
|
||||
}
|
||||
delete(filter);
|
||||
return NULL;
|
||||
} else if (strcmp(token, "thread") == 0) {
|
||||
const char* arg = _NextToken();
|
||||
|
Loading…
x
Reference in New Issue
Block a user