|
|
57c4797 |
From eb4ac3e1cd6f58708b2916c2afb2739d470f4cb5 Mon Sep 17 00:00:00 2001
|
|
|
57c4797 |
From: Dave Love <dave.love@manchester.ac.uk>
|
|
|
57c4797 |
Date: Sun, 14 May 2017 17:31:31 +0100
|
|
|
57c4797 |
Subject: [PATCH 06/30] Fix memory-related warnings
|
|
|
57c4797 |
|
|
|
57c4797 |
---
|
|
|
57c4797 |
src/get-section.c | 2 +-
|
|
|
57c4797 |
src/lib/config_parser.c | 5 +----
|
|
|
57c4797 |
src/lib/image-util.c | 5 +++++
|
|
|
57c4797 |
src/lib/message.c | 14 +++++++-------
|
|
|
57c4797 |
src/lib/mount/cwd/cwd.c | 2 +-
|
|
|
57c4797 |
src/lib/rootfs/rootfs.c | 1 +
|
|
|
57c4797 |
6 files changed, 16 insertions(+), 13 deletions(-)
|
|
|
57c4797 |
|
|
|
57c4797 |
diff --git a/src/get-section.c b/src/get-section.c
|
|
|
57c4797 |
index 9fc1e905..9e8f116a 100644
|
|
|
57c4797 |
--- a/src/get-section.c
|
|
|
57c4797 |
+++ b/src/get-section.c
|
|
|
57c4797 |
@@ -43,7 +43,7 @@ int main(int argc, char ** argv) {
|
|
|
57c4797 |
char *file;
|
|
|
57c4797 |
int toggle_retval = 1;
|
|
|
57c4797 |
FILE *input;
|
|
|
57c4797 |
- char *line = (char *)malloc(MAX_LINE_LEN);;
|
|
|
57c4797 |
+ char line[MAX_LINE_LEN];
|
|
|
57c4797 |
|
|
|
57c4797 |
if ( argc < 2 ) {
|
|
|
57c4797 |
printf("USAGE: %s [section] [file]\n", argv[0]);
|
|
|
57c4797 |
diff --git a/src/lib/config_parser.c b/src/lib/config_parser.c
|
|
|
57c4797 |
index 08e03a86..e8127abc 100644
|
|
|
57c4797 |
--- a/src/lib/config_parser.c
|
|
|
57c4797 |
+++ b/src/lib/config_parser.c
|
|
|
57c4797 |
@@ -68,15 +68,13 @@ void singularity_config_rewind(void) {
|
|
|
57c4797 |
char *singularity_config_get_value(char *key) {
|
|
|
57c4797 |
char *config_key;
|
|
|
57c4797 |
char *config_value;
|
|
|
57c4797 |
- char *line;
|
|
|
57c4797 |
+ char line[MAX_LINE_LEN];
|
|
|
57c4797 |
|
|
|
57c4797 |
if ( config_fp == NULL ) {
|
|
|
57c4797 |
singularity_message(ERROR, "Called singularity_config_get_value() before opening a config!\n");
|
|
|
57c4797 |
ABORT(255);
|
|
|
57c4797 |
}
|
|
|
57c4797 |
|
|
|
57c4797 |
- line = (char *)malloc(MAX_LINE_LEN);
|
|
|
57c4797 |
-
|
|
|
57c4797 |
singularity_message(DEBUG, "Called singularity_config_get_value(%s)\n", key);
|
|
|
57c4797 |
|
|
|
57c4797 |
while ( fgets(line, MAX_LINE_LEN, config_fp) ) {
|
|
|
57c4797 |
@@ -91,7 +89,6 @@ char *singularity_config_get_value(char *key) {
|
|
|
57c4797 |
}
|
|
|
57c4797 |
}
|
|
|
57c4797 |
}
|
|
|
57c4797 |
- free(line);
|
|
|
57c4797 |
|
|
|
57c4797 |
singularity_message(DEBUG, "No configuration file entry found for '%s'\n", key);
|
|
|
57c4797 |
return(NULL);
|
|
|
57c4797 |
diff --git a/src/lib/image-util.c b/src/lib/image-util.c
|
|
|
57c4797 |
index 29b105bd..9222d8e7 100644
|
|
|
57c4797 |
--- a/src/lib/image-util.c
|
|
|
57c4797 |
+++ b/src/lib/image-util.c
|
|
|
57c4797 |
@@ -114,6 +114,7 @@ int singularity_image_create(char *image, int size) {
|
|
|
57c4797 |
singularity_message(DEBUG, "Opening image 'w'\n");
|
|
|
57c4797 |
if ( ( image_fp = fopen(image, "w") ) == NULL ) { // Flawfinder: ignore
|
|
|
57c4797 |
fprintf(stderr, "ERROR: Could not open image for writing %s: %s\n", image, strerror(errno));
|
|
|
57c4797 |
+ free(buff);
|
|
|
57c4797 |
return(-1);
|
|
|
57c4797 |
}
|
|
|
57c4797 |
|
|
|
57c4797 |
@@ -128,6 +129,7 @@ int singularity_image_create(char *image, int size) {
|
|
|
57c4797 |
}
|
|
|
57c4797 |
}
|
|
|
57c4797 |
|
|
|
57c4797 |
+ free(buff);
|
|
|
57c4797 |
singularity_message(VERBOSE2, "Making image executable\n");
|
|
|
57c4797 |
fchmod(fileno(image_fp), 0755);
|
|
|
57c4797 |
|
|
|
57c4797 |
@@ -149,6 +151,7 @@ int singularity_image_expand(char *image, int size) {
|
|
|
57c4797 |
singularity_message(DEBUG, "Opening image 'r+'\n");
|
|
|
57c4797 |
if ( ( image_fp = fopen(image, "r+") ) == NULL ) { // Flawfinder: ignore
|
|
|
57c4797 |
fprintf(stderr, "ERROR: Could not open image for writing %s: %s\n", image, strerror(errno));
|
|
|
57c4797 |
+ free(buff);
|
|
|
57c4797 |
return(-1);
|
|
|
57c4797 |
}
|
|
|
57c4797 |
|
|
|
57c4797 |
@@ -159,6 +162,7 @@ int singularity_image_expand(char *image, int size) {
|
|
|
57c4797 |
singularity_message(DEBUG, "Removing the footer from image\n");
|
|
|
57c4797 |
if ( ftruncate(fileno(image_fp), position-1) < 0 ) {
|
|
|
57c4797 |
fprintf(stderr, "ERROR: Failed truncating the marker bit off of image %s: %s\n", image, strerror(errno));
|
|
|
57c4797 |
+ free(buff);
|
|
|
57c4797 |
return(-1);
|
|
|
57c4797 |
}
|
|
|
57c4797 |
singularity_message(VERBOSE2, "Expanding image by %dMB\n", size);
|
|
|
57c4797 |
@@ -168,6 +172,7 @@ int singularity_image_expand(char *image, int size) {
|
|
|
57c4797 |
ABORT(255);
|
|
|
57c4797 |
}
|
|
|
57c4797 |
}
|
|
|
57c4797 |
+ free(buff);
|
|
|
57c4797 |
fprintf(image_fp, "0");
|
|
|
57c4797 |
fclose(image_fp);
|
|
|
57c4797 |
|
|
|
57c4797 |
diff --git a/src/lib/message.c b/src/lib/message.c
|
|
|
57c4797 |
index dbaba509..502cb454 100644
|
|
|
57c4797 |
--- a/src/lib/message.c
|
|
|
57c4797 |
+++ b/src/lib/message.c
|
|
|
57c4797 |
@@ -76,28 +76,28 @@ void _singularity_message(int level, const char *function, const char *file, int
|
|
|
57c4797 |
|
|
|
57c4797 |
switch (level) {
|
|
|
57c4797 |
case ABRT:
|
|
|
57c4797 |
- prefix = strdup("ABORT");
|
|
|
57c4797 |
+ prefix = "ABORT";
|
|
|
57c4797 |
syslog_level = LOG_ALERT;
|
|
|
57c4797 |
break;
|
|
|
57c4797 |
case ERROR:
|
|
|
57c4797 |
- prefix = strdup("ERROR");
|
|
|
57c4797 |
+ prefix = "ERROR";
|
|
|
57c4797 |
syslog_level = LOG_ERR;
|
|
|
57c4797 |
break;
|
|
|
57c4797 |
case WARNING:
|
|
|
57c4797 |
- prefix = strdup("WARNING");
|
|
|
57c4797 |
+ prefix = "WARNING";
|
|
|
57c4797 |
syslog_level = LOG_WARNING;
|
|
|
57c4797 |
break;
|
|
|
57c4797 |
case LOG:
|
|
|
57c4797 |
- prefix = strdup("LOG");
|
|
|
57c4797 |
+ prefix = "LOG";
|
|
|
57c4797 |
break;
|
|
|
57c4797 |
case DEBUG:
|
|
|
57c4797 |
- prefix = strdup("DEBUG");
|
|
|
57c4797 |
+ prefix = "DEBUG";
|
|
|
57c4797 |
break;
|
|
|
57c4797 |
case INFO:
|
|
|
57c4797 |
- prefix = strdup("INFO");
|
|
|
57c4797 |
+ prefix = "INFO";
|
|
|
57c4797 |
break;
|
|
|
57c4797 |
default:
|
|
|
57c4797 |
- prefix = strdup("VERBOSE");
|
|
|
57c4797 |
+ prefix = "VERBOSE";
|
|
|
57c4797 |
break;
|
|
|
57c4797 |
}
|
|
|
57c4797 |
|
|
|
57c4797 |
diff --git a/src/lib/mount/cwd/cwd.c b/src/lib/mount/cwd/cwd.c
|
|
|
57c4797 |
index c3d2c348..56f547df 100644
|
|
|
57c4797 |
--- a/src/lib/mount/cwd/cwd.c
|
|
|
57c4797 |
+++ b/src/lib/mount/cwd/cwd.c
|
|
|
57c4797 |
@@ -41,7 +41,7 @@
|
|
|
57c4797 |
|
|
|
57c4797 |
void singularity_mount_cwd(void) {
|
|
|
57c4797 |
char *container_dir = singularity_rootfs_dir();
|
|
|
57c4797 |
- char *cwd_path = (char *) malloc(PATH_MAX);
|
|
|
57c4797 |
+ char cwd_path[PATH_MAX];
|
|
|
57c4797 |
int r;
|
|
|
57c4797 |
|
|
|
57c4797 |
singularity_message(DEBUG, "Checking to see if we should mount current working directory\n");
|
|
|
57c4797 |
diff --git a/src/lib/rootfs/rootfs.c b/src/lib/rootfs/rootfs.c
|
|
|
57c4797 |
index 2b42520b..4c2656b1 100644
|
|
|
57c4797 |
--- a/src/lib/rootfs/rootfs.c
|
|
|
57c4797 |
+++ b/src/lib/rootfs/rootfs.c
|
|
|
57c4797 |
@@ -220,6 +220,7 @@ int singularity_rootfs_mount(void) {
|
|
|
57c4797 |
|
|
|
57c4797 |
overlay_enabled = 1;
|
|
|
57c4797 |
}
|
|
|
57c4797 |
+ free(overlay_options);
|
|
|
57c4797 |
|
|
|
57c4797 |
#endif /* SINGULARITY_OVERLAYFS */
|
|
|
57c4797 |
|
|
|
57c4797 |
--
|
|
|
57c4797 |
2.11.0
|
|
|
57c4797 |
|