1 Commits

Author SHA1 Message Date
0c1783a47c Fix another memory leak on malloc fail 2016-12-21 02:37:15 +02:00
2 changed files with 6 additions and 2 deletions

View File

@ -163,6 +163,10 @@ void cli_rfid_add(const char *const *argv)
card.uid_size = uid.size; card.uid_size = uid.size;
memcpy(&card.uid, &uid.uidByte, uid.size); memcpy(&card.uid, &uid.uidByte, uid.size);
char *user = malloc(strlen(argv[1]) + 1); char *user = malloc(strlen(argv[1]) + 1);
if(!user) {
printf_P(PSTR(OUT_OF_MEMORY_MSG "\n"));
return;
}
strcpy(user, argv[1]); strcpy(user, argv[1]);
card.user = user; card.user = user;
rfid_add_card(&card); rfid_add_card(&card);

View File

@ -42,8 +42,8 @@ card_t* rfid_find_card(const card_t *card)
card_t *current; card_t *current;
current = head; current = head;
while (current != NULL) { while (current != NULL) {
if (((current->uid_size == card->uid_size) && if ((current->uid_size != card->uid_size) ||
!memcmp(current->uid, card->uid, current->uid_size)) || !memcmp(current->uid, card->uid, current->uid_size) ||
((card->user != NULL) && !strcmp(current->user, card->user))) { ((card->user != NULL) && !strcmp(current->user, card->user))) {
return current; return current;