From 6af304794723756865caee73593f13bd11a63450 Mon Sep 17 00:00:00 2001 From: Georg Rudolph Date: Sat, 15 May 2010 09:37:34 +0200 Subject: [PATCH] hdspmixer: Fix buffer overflow A one off string buffer overflow fixed by handling it properly with string stream. Signed-off-by: Georg Rudolph Signed-off-by: Jaroslav Kysela --- hdspmixer/src/HDSPMixerIOMixer.cxx | 6 +++--- hdspmixer/src/HDSPMixerIOMixer.h | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/hdspmixer/src/HDSPMixerIOMixer.cxx b/hdspmixer/src/HDSPMixerIOMixer.cxx index a431de5..a81f4a2 100644 --- a/hdspmixer/src/HDSPMixerIOMixer.cxx +++ b/hdspmixer/src/HDSPMixerIOMixer.cxx @@ -25,9 +25,9 @@ HDSPMixerIOMixer::HDSPMixerIOMixer(int x, int y, int w, int h, int ch, int type) { mixer_type = type; if (type) { - sprintf(channel_name, "Out %d", ch); + channel_name << "Out " << ch; } else { - sprintf(channel_name, "In %d", ch); + channel_name << "In " << ch; } channel_num = ch; if (channel_num%2) { @@ -73,7 +73,7 @@ void HDSPMixerIOMixer::draw() draw_background(); fl_color(FL_BLACK); fl_font(FL_HELVETICA, 8); - fl_draw(channel_name, x()+4, y()+225, 27, 9, FL_ALIGN_CENTER); + fl_draw(channel_name.str().c_str(), x()+4, y()+225, 27, 9, FL_ALIGN_CENTER); for (int i=children(); i--;) { Fl_Widget& o = **a++; draw_child(o); diff --git a/hdspmixer/src/HDSPMixerIOMixer.h b/hdspmixer/src/HDSPMixerIOMixer.h index 6286daf..a9a35de 100644 --- a/hdspmixer/src/HDSPMixerIOMixer.h +++ b/hdspmixer/src/HDSPMixerIOMixer.h @@ -36,6 +36,7 @@ #include "HDSPMixerStripData.h" #include "HDSPMixerMeter.h" #include "pixmaps.h" +#include class HDSPMixerWindow; class HDSPMixerSelector; @@ -52,7 +53,7 @@ class HDSPMixerIOMixer:public Fl_Group private: char **p_iomixer_xpm; int channel_num, relative_num, mixer_type; - char channel_name[6]; + std::stringstream channel_name; void update_child(Fl_Widget &widget); public: HDSPMixerStripData *data[3][3][8]; /* data[card][mode(ss/ds/qs)][preset number] */ -- 2.47.1