summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGES2
-rw-r--r--src/Fl_Preferences.cxx5
2 files changed, 6 insertions, 1 deletions
diff --git a/CHANGES b/CHANGES
index bae925694..54d10a6c4 100644
--- a/CHANGES
+++ b/CHANGES
@@ -5,6 +5,8 @@ CHANGES IN FLTK 1.1.8
STR #1639, STR #1645, STR #1644, STR #1792, STR #1793,
STR #1742, STR #1777, STR #1794, STR #1827, STR #1843,
STR #1796, STR #1815, STR #1726, STR #1753)
+ - Fixed potential buffer overrun
+ in Fl_Preferences (STR #1853)
- Fixed method attributes in consecutive class
declarations in FLUID (STR #1741)
- FLUID checks for seperately declared callbacks to
diff --git a/src/Fl_Preferences.cxx b/src/Fl_Preferences.cxx
index 83103819a..049c24de9 100644
--- a/src/Fl_Preferences.cxx
+++ b/src/Fl_Preferences.cxx
@@ -991,7 +991,10 @@ void Fl_Preferences::Node::set( const char *line )
const char *c = strchr( line, ':' );
if ( c )
{
- strlcpy( nameBuffer, line, c-line+1);
+ unsigned int len = c-line+1;
+ if ( len >= sizeof( nameBuffer ) )
+ len = sizeof( nameBuffer );
+ strlcpy( nameBuffer, line, len );
set( nameBuffer, c+1 );
}
else