reduce complexity + just free() in a single place

- therefor if the program gets extended, its unlikly that
  someone will forget to call free()
- also this gets rid of copy-paste free() calls (which look stupid)
This commit is contained in:
anthraxx 2014-06-10 13:01:34 +02:00
parent bf5f98649d
commit ea0b0d95e6

View file

@ -3,30 +3,24 @@
#include <stdlib.h> #include <stdlib.h>
int main() { int main() {
int bytes_read; int ret;
size_t nbytes = 0; size_t nbytes = 0;
char *my_string = NULL; char *my_string = NULL;
char *password = "23door42\n"; char *password = "23door42\n";
puts("Please enter Password: "); puts("Please enter Password: ");
ret = getline(&my_string, &nbytes, stdin);
bytes_read = getline(&my_string, &nbytes, stdin); if (ret == -1) {
if(bytes_read == -1) {
puts("Error"); puts("Error");
free(my_string); } else if (strcmp(my_string, password) == 0) {
return -1; puts("Success");
ret = 0;
} else { } else {
if (strcmp(my_string, password) == 0) { puts("How about no?!");
puts("Success"); ret = -1;
free(my_string);
return 0;
} else {
puts("How about no?!");
free(my_string);
return -1;
}
} }
return 0; free(my_string);
return ret;
} }