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 <[email protected]>
This commit is contained in:
@@ -735,6 +735,7 @@ main(int argc, const char *const *argv)
|
|||||||
const char *destination = files[fileCount];
|
const char *destination = files[fileCount];
|
||||||
files[fileCount] = NULL;
|
files[fileCount] = NULL;
|
||||||
copy_files(files, fileCount, destination, parameters);
|
copy_files(files, fileCount, destination, parameters);
|
||||||
|
delete[] files;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -369,6 +369,7 @@ main(int argc, const char* const* argv)
|
|||||||
execvp("zip", zipArgs);
|
execvp("zip", zipArgs);
|
||||||
|
|
||||||
fprintf(stderr, "Error: Failed exec*() zip: %s\n", strerror(errno));
|
fprintf(stderr, "Error: Failed exec*() zip: %s\n", strerror(errno));
|
||||||
|
delete[] rootNodes;
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -130,6 +130,7 @@ main(int argc, char **argv)
|
|||||||
if (read(fd, buffer, stat.st_size) < 0) {
|
if (read(fd, buffer, stat.st_size) < 0) {
|
||||||
fprintf(stderr, "Could not read from fortune file: %s\n",
|
fprintf(stderr, "Could not read from fortune file: %s\n",
|
||||||
strerror(errno));
|
strerror(errno));
|
||||||
|
free(buffer);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -148,6 +149,7 @@ main(int argc, char **argv)
|
|||||||
|
|
||||||
if (!count) {
|
if (!count) {
|
||||||
printf("Out of cookies...\n");
|
printf("Out of cookies...\n");
|
||||||
|
free(buffer);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -168,5 +170,6 @@ main(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
puts(buffer + start);
|
puts(buffer + start);
|
||||||
|
free(buffer)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -672,5 +672,7 @@ main(int argc, const char *const *argv)
|
|||||||
close(fd);
|
close(fd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
delete[] files;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -309,5 +309,7 @@ main(int argc, const char *const *argv)
|
|||||||
overwrite);
|
overwrite);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
delete[] inputFiles;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -237,5 +237,7 @@ main(int argc, const char *const *argv)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
delete[] files;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -452,8 +452,10 @@ Services::_LaunchService(struct service& service, int socket)
|
|||||||
}
|
}
|
||||||
args[service.arguments.size()] = NULL;
|
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);
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
// we'll never trespass here
|
// we'll never trespass here
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -1122,6 +1122,7 @@ private:
|
|||||||
TraceFilter* filter = new(&fFilters[fFilterCount++]) NotTraceFilter;
|
TraceFilter* filter = new(&fFilters[fFilterCount++]) NotTraceFilter;
|
||||||
if ((filter->fSubFilters.first = _ParseExpression()) != NULL)
|
if ((filter->fSubFilters.first = _ParseExpression()) != NULL)
|
||||||
return filter;
|
return filter;
|
||||||
|
delete(filter);
|
||||||
return NULL;
|
return NULL;
|
||||||
} else if (strcmp(token, "and") == 0) {
|
} else if (strcmp(token, "and") == 0) {
|
||||||
TraceFilter* filter = new(&fFilters[fFilterCount++]) AndTraceFilter;
|
TraceFilter* filter = new(&fFilters[fFilterCount++]) AndTraceFilter;
|
||||||
@@ -1129,6 +1130,7 @@ private:
|
|||||||
&& (filter->fSubFilters.second = _ParseExpression()) != NULL) {
|
&& (filter->fSubFilters.second = _ParseExpression()) != NULL) {
|
||||||
return filter;
|
return filter;
|
||||||
}
|
}
|
||||||
|
delete(filter);
|
||||||
return NULL;
|
return NULL;
|
||||||
} else if (strcmp(token, "or") == 0) {
|
} else if (strcmp(token, "or") == 0) {
|
||||||
TraceFilter* filter = new(&fFilters[fFilterCount++]) OrTraceFilter;
|
TraceFilter* filter = new(&fFilters[fFilterCount++]) OrTraceFilter;
|
||||||
@@ -1136,6 +1138,7 @@ private:
|
|||||||
&& (filter->fSubFilters.second = _ParseExpression()) != NULL) {
|
&& (filter->fSubFilters.second = _ParseExpression()) != NULL) {
|
||||||
return filter;
|
return filter;
|
||||||
}
|
}
|
||||||
|
delete(filter);
|
||||||
return NULL;
|
return NULL;
|
||||||
} else if (strcmp(token, "thread") == 0) {
|
} else if (strcmp(token, "thread") == 0) {
|
||||||
const char* arg = _NextToken();
|
const char* arg = _NextToken();
|
||||||
|
|||||||
Reference in New Issue
Block a user