Fixed bug with memory allocation in 'create_user_list' function
This commit is contained in:
23
main.c
23
main.c
@@ -128,15 +128,26 @@ User** create_user_list(char* filename) {
|
||||
int num_users = num_of_lines(filename);
|
||||
char* file_str = file_to_string(filename);
|
||||
|
||||
char* token = malloc(sizeof(char) * 30);
|
||||
char* token = malloc(30 * sizeof(char));
|
||||
User** users = malloc(num_users * sizeof(User*));
|
||||
|
||||
token = strtok(file_str," \r\n");
|
||||
token = strtok(file_str," \n");
|
||||
|
||||
for (int i=0;i<num_users;i++) {
|
||||
(*(users + i))->username = strdup(token);
|
||||
token = strtok(NULL," \r\n");
|
||||
(*(users + i))->password = strdup(token);
|
||||
token = strtok(NULL," \r\n");
|
||||
(*(users + i)) = malloc(sizeof(User));
|
||||
}
|
||||
|
||||
|
||||
for (int i=0;i<num_users;i++) {
|
||||
(*(users + i))->username = malloc(strlen(token)+1);
|
||||
strcpy((*(users + i))->username,token);
|
||||
|
||||
token = strtok(NULL," \n");
|
||||
|
||||
(*(users + i))->password = malloc(strlen(token)+1);
|
||||
strcpy((*(users + i))->password,token);
|
||||
|
||||
token = strtok(NULL," \n");
|
||||
}
|
||||
|
||||
return users;
|
||||
|
Reference in New Issue
Block a user