[alsa-tools/f13/master] Fix common hdspmixer crash (RHBZ #656514)
Tim Jackson
timj at fedoraproject.org
Wed Feb 2 17:33:34 UTC 2011
commit ff76a7da41f04705d86d0e44587adcc046243aa9
Author: Tim Jackson <rpm at timj.co.uk>
Date: Wed Feb 2 17:33:18 2011 +0000
Fix common hdspmixer crash (RHBZ #656514)
alsa-tools-1.0.23-hdspmixer-crash.patch | 60 +++++++++++++++++++++++++++++++
alsa-tools.spec | 7 +++-
2 files changed, 66 insertions(+), 1 deletions(-)
---
diff --git a/alsa-tools-1.0.23-hdspmixer-crash.patch b/alsa-tools-1.0.23-hdspmixer-crash.patch
new file mode 100644
index 0000000..3991211
--- /dev/null
+++ b/alsa-tools-1.0.23-hdspmixer-crash.patch
@@ -0,0 +1,60 @@
+From: Georg Rudolph <georg.rudolph at schwaben.de>
+Date: Sat, 15 May 2010 07:37:34 +0000 (+0200)
+Subject: hdspmixer: Fix buffer overflow
+X-Git-Url: http://git.alsa-project.org/?p=alsa-tools.git;a=commitdiff_plain;h=6af304794723756865caee73593f13bd11a63450
+
+hdspmixer: Fix buffer overflow
+
+A one off string buffer overflow fixed by handling it properly with
+string stream.
+
+Signed-off-by: Georg Rudolph <georg.rudolph at schwaben.de>
+Signed-off-by: Jaroslav Kysela <perex at perex.cz>
+---
+
+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 <sstream>
+
+ 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] */
diff --git a/alsa-tools.spec b/alsa-tools.spec
index de04796..6c93da5 100644
--- a/alsa-tools.spec
+++ b/alsa-tools.spec
@@ -23,7 +23,7 @@
Summary: Specialist tools for ALSA
Name: alsa-tools
Version: 1.0.23
-Release: 1%{?dist}
+Release: 2%{?dist}
# Checked at least one source file from all the sub-projects contained in
# the source tarball and they are consistent GPLv2+ - TJ 2007-11-15
@@ -43,6 +43,7 @@ Source5: 90-alsa-tools-firmware.rules
# http://www.openclipart.org/detail/17428
Source6: hwmixvolume.png
Source7: hwmixvolume.desktop
+Patch0: alsa-tools-1.0.23-hdspmixer-crash.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: alsa-lib-devel >= %{version}
%if 0%{!?_without_tools:1}
@@ -95,6 +96,7 @@ The following tools are available:
%prep
%setup -q -n %{name}-%{version}
+%patch0 -p1
%build
@@ -232,6 +234,9 @@ install -m 644 %{SOURCE5} ${RPM_BUILD_ROOT}%{_sysconfdir}/udev/rules.d
%endif
%changelog
+* Wed Feb 02 2011 Tim Jackson <rpm at timj.co.uk> - 1.0.23-2
+- Fix common hdspmixer crash (#656514)
+
* Mon May 03 2010 Tom "spot" Callaway <tcallawa at redhat.com> - 1.0.23-1
- update to 1.0.23
More information about the scm-commits
mailing list