Fixed bug with memory allocation in 'create_user_list' function

This commit is contained in:
2023-04-09 10:48:21 -05:00
parent 5bf131d00c
commit 10dfaf855d

27
main.c
View File

@@ -128,15 +128,26 @@ User** create_user_list(char* filename) {
int num_users = num_of_lines(filename); int num_users = num_of_lines(filename);
char* file_str = file_to_string(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*)); 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); for (int i=0;i<num_users;i++) {
token = strtok(NULL," \r\n"); (*(users + i)) = malloc(sizeof(User));
(*(users + i))->password = strdup(token); }
token = strtok(NULL," \r\n");
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; return users;