From 5e3d4fc7db139616fee63f0c630e837d5affc16e Mon Sep 17 00:00:00 2001 From: Matthias Melcher Date: Wed, 9 Jan 2008 21:23:51 +0000 Subject: [PATCH] STR #1853: fixed potntial buffer overrun un Fl_Preferences git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@6015 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- CHANGES | 2 ++ src/Fl_Preferences.cxx | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) 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