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