aboutsummarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorAntony Kellermann2018-08-23 16:58:58 -0400
committerAntony Kellermann2018-08-23 16:58:58 -0400
commit5b9f5d991a546ae3533fc9cb68f373d400cfe5cf (patch)
tree444565cb377ad0aff9f3b96348b474200f739b13
parent402fa9236064925a2547eeb96774338380fc35a9 (diff)
downloadaur-5b9f5d991a546ae3533fc9cb68f373d400cfe5cf.tar.gz
Fixed segfaults on graphing and some infop
-rw-r--r--api.c3
-rw-r--r--curses_win.c11
2 files changed, 7 insertions, 7 deletions
diff --git a/api.c b/api.c
index 541ff6749db7..4d4ffb26edcb 100644
--- a/api.c
+++ b/api.c
@@ -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();
}