Skip to content

Commit

Permalink
Mfw NULL pointer dereference (fix IFTTT)
Browse files Browse the repository at this point in the history
  • Loading branch information
Willy-JL committed May 2, 2023
1 parent 8a5cef0 commit ae321fb
Showing 1 changed file with 11 additions and 21 deletions.
32 changes: 11 additions & 21 deletions applications/external/ifttt/ifttt_virtual_button.c
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,11 @@ void save_settings_file(FlipperFormat* file, Settings* settings) {
Settings* load_settings() {
Settings* settings = malloc(sizeof(Settings));

settings->save_ssid = "";
settings->save_password = "";
settings->save_key = "";
settings->save_event = "";

Storage* storage = furi_record_open(RECORD_STORAGE);
FlipperFormat* file = flipper_format_file_alloc(storage);

Expand All @@ -53,29 +58,14 @@ Settings* load_settings() {
text_event_value = furi_string_alloc();

if(storage_common_stat(storage, CONFIG_FILE_PATH, NULL) != FSE_OK) {
if(!flipper_format_file_open_new(file, CONFIG_FILE_PATH)) {
flipper_format_file_close(file);
} else {
settings->save_ssid = malloc(1);
settings->save_password = malloc(1);
settings->save_key = malloc(1);
settings->save_event = malloc(1);

settings->save_ssid[0] = '\0';
settings->save_password[0] = '\0';
settings->save_key[0] = '\0';
settings->save_event[0] = '\0';

if(flipper_format_file_open_new(file, CONFIG_FILE_PATH)) {
save_settings_file(file, settings);
flipper_format_file_close(file);
}
flipper_format_file_close(file);
} else {
if(!flipper_format_file_open_existing(file, CONFIG_FILE_PATH)) {
flipper_format_file_close(file);
} else {
if(flipper_format_file_open_existing(file, CONFIG_FILE_PATH)) {
uint32_t value;
if(!flipper_format_read_header(file, string_value, &value)) {
} else {
if(flipper_format_read_header(file, string_value, &value)) {
if(flipper_format_read_string(file, CONF_SSID, text_ssid_value)) {
settings->save_ssid = malloc(furi_string_size(text_ssid_value) + 1);
strcpy(settings->save_ssid, furi_string_get_cstr(text_ssid_value));
Expand All @@ -93,8 +83,8 @@ Settings* load_settings() {
strcpy(settings->save_event, furi_string_get_cstr(text_event_value));
}
}
flipper_format_file_close(file);
}
flipper_format_file_close(file);
}

furi_string_free(text_ssid_value);
Expand Down Expand Up @@ -248,4 +238,4 @@ int32_t ifttt_virtual_button_app(void* p) {
view_dispatcher_run(app->view_dispatcher);
ifttt_virtual_button_app_free(app);
return 0;
}
}

0 comments on commit ae321fb

Please sign in to comment.