summaryrefslogtreecommitdiffstats
path: root/apps/plugins
diff options
context:
space:
mode:
authorSolomon Peachy <pizza@shaftnet.org>2020-10-27 11:14:23 -0400
committerSolomon Peachy <pizza@shaftnet.org>2020-10-28 08:42:49 -0400
commita605cdf7008f856946cbf01193f4dffc3ee63fdb (patch)
tree53368641340ffd9d10f77f56b2bde66916a1cfd1 /apps/plugins
parent621e363e70e69a92169494515c5637551ceba219 (diff)
downloadrockbox-a605cdf700.tar.gz
rockbox-a605cdf700.tar.bz2
rockbox-a605cdf700.zip
Fix multiple potential null pointer dereferencess
GCC's optimizer thinks all of these _will_ fail at some point Change-Id: I287eeb574162a5d3b3347654d25aa1f53e9f5563
Diffstat (limited to 'apps/plugins')
-rw-r--r--apps/plugins/chessbox/chessbox_pgn.c14
-rw-r--r--apps/plugins/reversi/reversi-gui.c7
2 files changed, 15 insertions, 6 deletions
diff --git a/apps/plugins/chessbox/chessbox_pgn.c b/apps/plugins/chessbox/chessbox_pgn.c
index 40e88e500b..0d9da441b1 100644
--- a/apps/plugins/chessbox/chessbox_pgn.c
+++ b/apps/plugins/chessbox/chessbox_pgn.c
@@ -623,6 +623,7 @@ struct pgn_game_node* pgn_list_games(const char* filename){
/* a new game header is found */
if (line_buffer[0] == '['){
temp_node = (struct pgn_game_node *)pl_malloc(sizeof size_node);
+ if (!temp_node) return NULL;
temp_node->next_node = NULL;
if (curr_node == NULL) {
first_game = curr_node = temp_node;
@@ -773,9 +774,11 @@ void pgn_parse_game(const char* filename,
*/
if (first_ply != NULL){
temp_ply = (struct pgn_ply_node *)pl_malloc(sizeof size_ply);
- temp_ply->player = neutral;
- temp_ply->prev_node = curr_node;
- curr_node->next_node = temp_ply;
+ if (temp_ply) {
+ temp_ply->player = neutral;
+ temp_ply->prev_node = curr_node;
+ curr_node->next_node = temp_ply;
+ }
}
selected_game->first_ply = first_ply;
@@ -793,6 +796,7 @@ struct pgn_game_node* pgn_init_game(void){
/* create an "end of game" dummy ply and assign defaults */
ply = (struct pgn_ply_node *)pl_malloc(sizeof ply_size);
+ if (!ply) return NULL;
ply->player = neutral;
ply->pgn_text[0] = '\0';
ply->prev_node = NULL;
@@ -800,6 +804,8 @@ struct pgn_game_node* pgn_init_game(void){
/* create the game and assign defaults */
game = (struct pgn_game_node *)pl_malloc(sizeof game_size);
+ if (!game) return NULL;
+
game->game_number = 0;
rb->strcpy(game->white_player,"Player");
rb->strcpy(game->black_player,"GnuChess");
@@ -823,6 +829,7 @@ void pgn_append_ply(struct pgn_game_node* game,
struct pgn_ply_node ply_size, *ply, *temp;
ply = (struct pgn_ply_node *)pl_malloc(sizeof ply_size);
+ if (!ply) return;
ply->player = ply_player;
ply->column_from = move_buffer[0] - 'a';
ply->row_from = move_buffer[1] - '1';
@@ -847,6 +854,7 @@ void pgn_append_ply(struct pgn_game_node* game,
} else {
temp->prev_node->next_node = ply;
}
+
temp->prev_node = ply;
}
diff --git a/apps/plugins/reversi/reversi-gui.c b/apps/plugins/reversi/reversi-gui.c
index aca54a1ea3..74dd98b676 100644
--- a/apps/plugins/reversi/reversi-gui.c
+++ b/apps/plugins/reversi/reversi-gui.c
@@ -637,12 +637,13 @@ enum plugin_status plugin_start(const void *parameter) {
draw_screen = false;
}
switch(cur_player) {
- case BLACK:
- cur_strategy = black_strategy;
- break;
case WHITE:
cur_strategy = white_strategy;
break;
+ case BLACK:
+ default:
+ cur_strategy = black_strategy;
+ break;
}
if(cur_strategy->is_robot && !game_finished) {