diff options
author | Antony Kellermann | 2018-08-23 16:58:58 -0400 |
---|---|---|
committer | Antony Kellermann | 2018-08-23 16:58:58 -0400 |
commit | 5b9f5d991a546ae3533fc9cb68f373d400cfe5cf (patch) | |
tree | 444565cb377ad0aff9f3b96348b474200f739b13 | |
parent | 402fa9236064925a2547eeb96774338380fc35a9 (diff) | |
download | aur-5b9f5d991a546ae3533fc9cb68f373d400cfe5cf.tar.gz |
Fixed segfaults on graphing and some infop
-rw-r--r-- | api.c | 3 | ||||
-rw-r--r-- | curses_win.c | 11 |
2 files changed, 7 insertions, 7 deletions
@@ -134,7 +134,8 @@ void iex_batch_store_data_info(Info* pInfo, Data_Level data_level) { strcpy(symbol_array, pInfo->symbol); String* pString = iex_batch_get_data_string(&symbol_array, 1, data_level); Json* jobj = json_tokener_parse(pString->data); - info_store_all_from_json(pInfo, json_object_object_get(jobj, pInfo->symbol)); + if (is_string_json_array(pString) && json_object_array_length(jobj) == 1) + info_store_all_from_json(pInfo, json_object_object_get(jobj, pInfo->symbol)); free(symbol_array); json_object_put(jobj); diff --git a/curses_win.c b/curses_win.c index ef1a93100677..3dad17f33eb8 100644 --- a/curses_win.c +++ b/curses_win.c @@ -398,8 +398,8 @@ void peers_printw(WINDOW* window, const Info* symbol_info) { void graph_print(const char* symbol, const char* symbol2) { Info* symbol_info = api_info_init(), * symbol_info2 = NULL; strcpy(symbol_info->symbol, symbol); - api_info_store_data_batch(symbol_info, ALL); - if (symbol_info->api_provider == EMPTY) { + api_info_store_data_batch(symbol_info, CHECK); + if (symbol_info->api_provider == EMPTY || symbol_info->points == NULL) { api_info_destroy(&symbol_info); RET_MSG("Invalid symbol") } @@ -407,8 +407,8 @@ void graph_print(const char* symbol, const char* symbol2) { if (symbol2 != NULL) { symbol_info2 = api_info_init(); strcpy(symbol_info2->symbol, symbol2); - api_info_store_data_batch(symbol_info2, ALL); - if (symbol_info2->api_provider == EMPTY) { + api_info_store_data_batch(symbol_info2, CHECK); + if (symbol_info2->api_provider == EMPTY || symbol_info2->points == NULL) { api_info_destroy(&symbol_info); api_info_destroy(&symbol_info2); RET_MSG("Invalid symbol") @@ -422,8 +422,7 @@ void graph_print(const char* symbol, const char* symbol2) { graph_printw(stdscr, symbol_info, symbol_info2); api_info_destroy(&symbol_info); - if (symbol_info2 != NULL) - api_info_destroy(&symbol_info2); + api_info_destroy(&symbol_info2); endwin(); } |