fixing memleak of input char*

- adding missing free() calls
- dont malloc ourselves as getline() also does a malloc
  (and anyway called realloc before if the size_t was
   smaller then the actual len(input-line) to behaviour
   is the same!)
This commit is contained in:
anthraxx 2014-06-10 12:39:36 +02:00
parent 295b44aff4
commit 320c09285c

View file

@ -3,23 +3,26 @@
int main() {
int bytes_read;
size_t nbytes = 10;
char **my_string = malloc(sizeof(char**));
size_t nbytes = 0;
char *my_string = NULL;
char *password = "23door42\n";
puts("Please enter Password: ");
bytes_read = getline(my_string, &nbytes, stdin);
bytes_read = getline(&my_string, &nbytes, stdin);
if(bytes_read == -1) {
puts("Error");
free(my_string);
return -1;
} else {
if (strcmp(*my_string, password) == 0) {
if (strcmp(my_string, password) == 0) {
puts("Success");
free(my_string);
return 0;
} else {
puts("How about no?!");
free(my_string);
return -1;
}
}