Skip to content
Snippets Groups Projects
Commit 10f5d7f3 authored by GoaLitiuM's avatar GoaLitiuM
Browse files

Fixed NULL pointer dereferencing in linked lists

parent d17565af
No related branches found
No related tags found
No related merge requests found
...@@ -673,7 +673,8 @@ void gs_program_destroy(struct gs_program *program) ...@@ -673,7 +673,8 @@ void gs_program_destroy(struct gs_program *program)
if (program->next) if (program->next)
program->next->prev_next = program->prev_next; program->next->prev_next = program->prev_next;
*program->prev_next = program->next; if (program->prev_next)
*program->prev_next = program->next;
glDeleteProgram(program->obj); glDeleteProgram(program->obj);
gl_success("glDeleteProgram"); gl_success("glDeleteProgram");
......
...@@ -99,7 +99,8 @@ static inline void audio_output_removeline(struct audio_output *audio, ...@@ -99,7 +99,8 @@ static inline void audio_output_removeline(struct audio_output *audio,
struct audio_line *line) struct audio_line *line)
{ {
pthread_mutex_lock(&audio->line_mutex); pthread_mutex_lock(&audio->line_mutex);
*line->prev_next = line->next; if (line->prev_next)
*line->prev_next = line->next;
if (line->next) if (line->next)
line->next->prev_next = line->prev_next; line->next->prev_next = line->prev_next;
pthread_mutex_unlock(&audio->line_mutex); pthread_mutex_unlock(&audio->line_mutex);
......
...@@ -86,7 +86,8 @@ void obs_display_destroy(obs_display_t *display) ...@@ -86,7 +86,8 @@ void obs_display_destroy(obs_display_t *display)
{ {
if (display) { if (display) {
pthread_mutex_lock(&obs->data.displays_mutex); pthread_mutex_lock(&obs->data.displays_mutex);
*display->prev_next = display->next; if (display->prev_next)
*display->prev_next = display->next;
if (display->next) if (display->next)
display->next->prev_next = display->prev_next; display->next->prev_next = display->prev_next;
pthread_mutex_unlock(&obs->data.displays_mutex); pthread_mutex_unlock(&obs->data.displays_mutex);
......
...@@ -1326,7 +1326,8 @@ void obs_context_data_remove(struct obs_context_data *context) ...@@ -1326,7 +1326,8 @@ void obs_context_data_remove(struct obs_context_data *context)
{ {
if (context && context->mutex) { if (context && context->mutex) {
pthread_mutex_lock(context->mutex); pthread_mutex_lock(context->mutex);
*context->prev_next = context->next; if (context->prev_next)
*context->prev_next = context->next;
if (context->next) if (context->next)
context->next->prev_next = context->prev_next; context->next->prev_next = context->prev_next;
pthread_mutex_unlock(context->mutex); pthread_mutex_unlock(context->mutex);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment