* Dhaval Giani <[email protected]> [2009-01-04 22:29:38]:
> Signed-off-by: Dhaval Giani <[email protected]>
>
> ---
> tests/libcgrouptest01.c | 51
> ++++++++++++++++++++++++++++++++----------------
> 1 file changed, 34 insertions(+), 17 deletions(-)
>
> Index: trunk/tests/libcgrouptest01.c
> ===================================================================
> --- trunk.orig/tests/libcgrouptest01.c 2009-01-04 22:05:30.000000000
> +0530
> +++ trunk/tests/libcgrouptest01.c 2009-01-04 22:12:20.000000000 +0530
> @@ -15,6 +15,7 @@
> */
>
> #include "libcgrouptest.h"
> +#include <errno.h>
>
> /* The messages that may be useful to the user */
> char info[NUM_MSGS][SIZE] = {
> @@ -986,6 +987,8 @@ void get_controllers(const char *name, i
> if (strncmp(name, subsys_name, sizeof(*name)) == 0)
> *exist = 1;
> }
> +
> + fclose(fd);
> }
>
> static int group_exist(char *path_group)
> @@ -1042,6 +1045,7 @@ static int group_modified(char *path_con
> u_int64_t uint64_val;
> char string_val[FILENAME_MAX]; /* Doubt: what should be the size ? */
> FILE *fd;
> + int error = 1;
>
> fd = fopen(path_control_file, "r");
> if (!fd) {
> @@ -1055,31 +1059,32 @@ static int group_modified(char *path_con
> case BOOL:
> fscanf(fd, "%d", &bool_val);
> if (bool_val == val_bool)
> - return 0;
> + error = 0;
> break;
> case INT64:
> fscanf(fd, "%lld", &int64_val);
> if (int64_val == val_int64)
> - return 0;
> + error = 0;
> break;
> case UINT64:
> fscanf(fd, "%llu", &uint64_val);
> if (uint64_val == val_uint64)
> - return 0;
> + error = 0;
> break;
> case STRING:
> fscanf(fd, "%s", string_val);
> if (!strncmp(string_val, val_string, strlen(string_val)))
> - return 0;
> + error = 0;
> break;
> default:
> fprintf(stderr, "Wrong value_type passed "
> "in group_modified()\n");
> fprintf(stderr, "Skipping modified values check....\n");
> - return 0; /* Can not report test result as failure */
> + error = 0; /* Can not report test result as failure */
> break;
> }
> - return 1;
> + fclose(fd);
> + return error;
> }
> static int add_control_value(struct cgroup_controller *newcontroller,
> char * control_file, char *wr, int value_type)
> @@ -1163,21 +1168,24 @@ struct cgroup *new_cgroup(char *group, c
> int check_fsmounted(int multimnt)
> {
> int count = 0;
> - struct mntent *entry, *tmp_entry;
> + struct mntent *entry, *tmp_entry = NULL;
> /* Need a better mechanism to decide memory allocation size here */
> char entry_buffer[FILENAME_MAX * 4];
> - FILE *proc_file;
> + FILE *proc_file = NULL;
> + int ret = 1;
Be consistent please, ret, error -- choose 1
>
> tmp_entry = (struct mntent *) malloc(sizeof(struct mntent));
> if (!tmp_entry) {
> perror("Error: failled to mallloc for mntent\n");
> - return 1;
> + ret = 1;
> + goto error;
> }
>
> proc_file = fopen("/proc/mounts", "r");
> if (!proc_file) {
> printf("Error in opening /proc/mounts.\n");
> - return EIO;
> + ret = errno;
> + goto error;
> }
> while ((entry = getmntent_r(proc_file, tmp_entry, entry_buffer,
> FILENAME_MAX*4)) != NULL) {
> @@ -1187,16 +1195,23 @@ int check_fsmounted(int multimnt)
> if (count >= 2) {
> printf("sanity check pass. %s\n",
> entry->mnt_type);
> - return 0;
> + ret = 0;
> + goto error;
> }
> } else {
> printf("sanity check pass. %s\n",
> entry->mnt_type);
> - return 0;
> + ret = 0;
> + goto error;
> }
> }
> }
> - return 1;
> +error:
> + if (tmp_entry)
> + free(tmp_entry);
> + if (proc_file)
> + fclose(proc_file);
> + return ret;
> }
>
> static int check_task(char *tasksfile)
> @@ -1220,6 +1235,7 @@ static int check_task(char *tasksfile)
> break;
> }
> }
> + fclose(file);
>
> return pass;
> }
> @@ -1246,13 +1262,13 @@ static inline void build_path(char *targ
> strncpy(target, mountpoint, FILENAME_MAX);
>
> if (group) {
> - strncat(target, "/", FILENAME_MAX);
> - strncat(target, group, FILENAME_MAX);
> + strncat(target, "/", FILENAME_MAX - strlen(target));
> + strncat(target, group, FILENAME_MAX - strlen(target));
Lets write a new macro space_left() or SPACE_LEFT(str) and use it.
I'll let it go by for now
> }
>
> if (file) {
> - strncat(target, "/", FILENAME_MAX);
> - strncat(target, file, FILENAME_MAX);
> + strncat(target, "/", FILENAME_MAX - strlen(target));
> + strncat(target, file, FILENAME_MAX - strlen(target));
> }
> }
>
> @@ -1350,6 +1366,7 @@ void test_cgroup_get_cgroup(int ctl1, in
> else
> message(i++, FAIL, "get_cgroup()", ret,
> info[NOTCRTDGRP]);
> + cgroup_free(&cgroup_filled);
>
> /* 3.
> * Test with name filled cgroup. Ensure the group group1 exists
>
>
>
Acked-by: Balbir Singh <[email protected]>
--
Balbir
------------------------------------------------------------------------------
_______________________________________________
Libcg-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libcg-devel