From 548fe016d349a432e8a8a45830a09b2b84816275 Mon Sep 17 00:00:00 2001 From: Matthias Melcher Date: Fri, 19 Jan 2024 11:50:28 +0100 Subject: [PATCH] Fix crash in Fl_Preferences for deformed group name (#891) --- src/Fl_Preferences.cxx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Fl_Preferences.cxx b/src/Fl_Preferences.cxx index 90b7820fd..da5eaf111 100644 --- a/src/Fl_Preferences.cxx +++ b/src/Fl_Preferences.cxx @@ -3,7 +3,7 @@ // // Preferences methods for the Fast Light Tool Kit (FLTK). // -// Copyright 2002-2010 by Matthias Melcher. +// Copyright 2002-2024 by Matthias Melcher. // // This library is free software. Distribution and use rights are outlined in // the file "COPYING" which should have been included with this file. If this @@ -1130,18 +1130,18 @@ int Fl_Preferences::RootNode::read() { if ( buf[0]=='[' ) { // read a new group size_t end = strcspn( buf+1, "]\n\r" ); buf[ end+1 ] = 0; - nd = prefs_->node->find( buf+1 ); + nd = prefs_->node->find( buf+1 ); // may return NULL for a deformed file } else if ( buf[0]=='+' ) { // value of previous name/value pair spans multiple lines size_t end = strcspn( buf+1, "\n\r" ); if ( end != 0 ) { // if entry is not empty - buf[ end+1 ] = 0; - nd->add( buf+1 ); + buf[ end+1 ] = 0; + if (nd) nd->add( buf+1 ); } } else { // read a name/value pair size_t end = strcspn( buf, "\n\r" ); if ( end != 0 ) { // if entry is not empty - buf[ end ] = 0; - nd->set( buf ); + buf[ end ] = 0; + if (nd) nd->set( buf ); } } }