fl_old_shortcut() might read past the end of the shortcut string.
Add comment concerning pointer arithmetic in Fl_Input_::put(). git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@3836 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
parent
0980e98148
commit
fdd10af508
3
CHANGES
3
CHANGES
@ -3,6 +3,9 @@ CHANGES IN FLTK 1.1.5rc3
|
||||
- Documentation updates (STR #505, STR #513)
|
||||
- Updated PNG library source to 1.2.6 + wutil patch.
|
||||
- Updated ZLIB library source to 1.2.1.
|
||||
- Fixed an edge case in fl_old_shortcut() that could
|
||||
cause it to read beyond then end of the shortcut
|
||||
string (used for XForms named shortcuts)
|
||||
- Added (unsupported) CMake files (STR #499)
|
||||
- Tooltips would not reappear on the same widget, and
|
||||
the initial tooltip delay was not used after a tooltip
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
//
|
||||
// "$Id: Fl_Input_.cxx,v 1.21.2.11.2.31 2004/09/09 21:34:46 matthiaswm Exp $"
|
||||
// "$Id: Fl_Input_.cxx,v 1.21.2.11.2.32 2004/09/21 13:35:39 easysw Exp $"
|
||||
//
|
||||
// Common input widget routines for the Fast Light Tool Kit (FLTK).
|
||||
//
|
||||
@ -793,6 +793,15 @@ void Fl_Input_::put_in_buffer(int len) {
|
||||
} else {
|
||||
bufsize = len+1;
|
||||
}
|
||||
// Note: the following code is equivalent to:
|
||||
//
|
||||
// if (moveit) value_ = value_ - buffer;
|
||||
// char* nbuffer = (char*)realloc(buffer, bufsize);
|
||||
// if (moveit) value_ = value_ + nbuffer;
|
||||
// buffer = nbuffer;
|
||||
//
|
||||
// We just optimized the pointer arithmetic for value_...
|
||||
//
|
||||
char* nbuffer = (char*)realloc(buffer, bufsize);
|
||||
if (moveit) value_ += (nbuffer-buffer);
|
||||
buffer = nbuffer;
|
||||
@ -857,5 +866,5 @@ Fl_Input_::~Fl_Input_() {
|
||||
}
|
||||
|
||||
//
|
||||
// End of "$Id: Fl_Input_.cxx,v 1.21.2.11.2.31 2004/09/09 21:34:46 matthiaswm Exp $".
|
||||
// End of "$Id: Fl_Input_.cxx,v 1.21.2.11.2.32 2004/09/21 13:35:39 easysw Exp $".
|
||||
//
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
//
|
||||
// "$Id: fl_shortcut.cxx,v 1.4.2.9.2.13 2004/04/11 04:39:00 easysw Exp $"
|
||||
// "$Id: fl_shortcut.cxx,v 1.4.2.9.2.14 2004/09/21 13:35:40 easysw Exp $"
|
||||
//
|
||||
// Shortcut support routines for the Fast Light Tool Kit (FLTK).
|
||||
//
|
||||
@ -176,7 +176,7 @@ int fl_old_shortcut(const char* s) {
|
||||
if (*s == '#') {n |= FL_ALT; s++;}
|
||||
if (*s == '+') {n |= FL_SHIFT; s++;}
|
||||
if (*s == '^') {n |= FL_CTRL; s++;}
|
||||
if (s[1]) return n | (int)strtol(s,0,0); // allow 0xf00 to get any key
|
||||
if (*s && s[1]) return n | (int)strtol(s,0,0); // allow 0xf00 to get any key
|
||||
return n | *s;
|
||||
}
|
||||
|
||||
@ -201,5 +201,5 @@ int Fl_Widget::test_shortcut() {
|
||||
}
|
||||
|
||||
//
|
||||
// End of "$Id: fl_shortcut.cxx,v 1.4.2.9.2.13 2004/04/11 04:39:00 easysw Exp $".
|
||||
// End of "$Id: fl_shortcut.cxx,v 1.4.2.9.2.14 2004/09/21 13:35:40 easysw Exp $".
|
||||
//
|
||||
|
||||
Loading…
Reference in New Issue
Block a user