Toshaan Bharvani
4 months ago
commit
b373d06172
3 changed files with 163 additions and 0 deletions
@ -0,0 +1,50 @@ |
|||||||
|
From 3400b9c048706c572373e4617b4d5fcdb8dd2505 Mon Sep 17 00:00:00 2001 |
||||||
|
From: Sergei Trofimovich <slyich@gmail.com> |
||||||
|
Date: Mon, 6 Dec 2021 08:02:22 +0000 |
||||||
|
Subject: [PATCH 1/2] src/pamix_ui.cpp: always use "%s"-style format for |
||||||
|
printf()-style functions |
||||||
|
MIME-Version: 1.0 |
||||||
|
Content-Type: text/plain; charset=UTF-8 |
||||||
|
Content-Transfer-Encoding: 8bit |
||||||
|
|
||||||
|
`ncuses-6.3` added printf-style function attributes and now makes |
||||||
|
it easier to catch cases when user input is used in palce of format |
||||||
|
string when built with CFLAGS=-Werror=format-security: |
||||||
|
|
||||||
|
PAmix/src/pamix_ui.cpp:106:52: |
||||||
|
error: format not a string literal and no format arguments [-Werror=format-security] |
||||||
|
106 | mvprintw(lineNumber++, 1, applicationName.c_str()); |
||||||
|
| ^ |
||||||
|
|
||||||
|
Let's wrap all the missing places with "%s" format. |
||||||
|
|
||||||
|
Signed-off-by: Petr Šabata <contyk@redhat.com> |
||||||
|
--- |
||||||
|
src/pamix_ui.cpp | 4 ++-- |
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-) |
||||||
|
|
||||||
|
diff --git a/src/pamix_ui.cpp b/src/pamix_ui.cpp |
||||||
|
index c1acb2b..423d2ba 100644 |
||||||
|
--- a/src/pamix_ui.cpp |
||||||
|
+++ b/src/pamix_ui.cpp |
||||||
|
@@ -103,7 +103,7 @@ void pamix_ui::redrawAll() { |
||||||
|
string_maxlen_pct(applicationName, 0.4); |
||||||
|
if (isSelectedEntry) |
||||||
|
attron(A_STANDOUT); |
||||||
|
- mvprintw(lineNumber++, 1, applicationName.c_str()); |
||||||
|
+ mvprintw(lineNumber++, 1, "%s", applicationName.c_str()); |
||||||
|
attroff(A_STANDOUT); |
||||||
|
|
||||||
|
bool isMuted = entry->m_Mute || averageVolume == PA_VOLUME_MUTED; |
||||||
|
@@ -121,7 +121,7 @@ void pamix_ui::redrawAll() { |
||||||
|
remainingChars -= displayName.length(); |
||||||
|
} |
||||||
|
|
||||||
|
- mvprintw(curY, curX + remainingChars + 1, displayName.c_str()); |
||||||
|
+ mvprintw(curY, curX + remainingChars + 1, "%s", displayName.c_str()); |
||||||
|
lineNumber++; |
||||||
|
} |
||||||
|
|
||||||
|
-- |
||||||
|
2.38.1 |
||||||
|
|
@ -0,0 +1,43 @@ |
|||||||
|
From 5ef67fc5ef6fc0dc0b48ff07ba48093881561d9c Mon Sep 17 00:00:00 2001 |
||||||
|
From: Sergei Trofimovich <slyich@gmail.com> |
||||||
|
Date: Mon, 6 Dec 2021 08:04:49 +0000 |
||||||
|
Subject: [PATCH 2/2] src/pamix_ui.cpp: fix %d/%zu printf() confusion |
||||||
|
MIME-Version: 1.0 |
||||||
|
Content-Type: text/plain; charset=UTF-8 |
||||||
|
Content-Transfer-Encoding: 8bit |
||||||
|
|
||||||
|
`ncuses-6.3` added printf-style function attributes and now makes |
||||||
|
it easier to catch cases when user input is used in palce of format |
||||||
|
string. Current PAmix warns as: |
||||||
|
|
||||||
|
PAmix/src/pamix_ui.cpp: In member function 'void pamix_ui::drawHeader() const': |
||||||
|
PAmix/src/pamix_ui.cpp:187:22: warning: format '%d' expects argument of type 'int', but argument 5 has type 'std::map<unsigned int, std::unique_ptr<Entry> >::size_type' {aka 'long unsigned int'} [-Wformat=] |
||||||
|
187 | mvprintw(0, 1, "%d/%d", m_Entries->empty() ? 0 : m_SelectedEntry + 1, m_Entries->size()); |
||||||
|
| ~^ ~~~~~~~~~~~~~~~~~ |
||||||
|
| | | |
||||||
|
| int std::map<unsigned int, std::unique_ptr<Entry> >::size_type {aka long unsigned int} |
||||||
|
| %ld |
||||||
|
|
||||||
|
Let's match both numbers to use %d. |
||||||
|
|
||||||
|
Signed-off-by: Petr Šabata <contyk@redhat.com> |
||||||
|
--- |
||||||
|
src/pamix_ui.cpp | 2 +- |
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-) |
||||||
|
|
||||||
|
diff --git a/src/pamix_ui.cpp b/src/pamix_ui.cpp |
||||||
|
index 423d2ba..ff5bc61 100644 |
||||||
|
--- a/src/pamix_ui.cpp |
||||||
|
+++ b/src/pamix_ui.cpp |
||||||
|
@@ -184,7 +184,7 @@ void pamix_ui::redrawVolumeBars() { |
||||||
|
} |
||||||
|
|
||||||
|
void pamix_ui::drawHeader() const { |
||||||
|
- mvprintw(0, 1, "%d/%d", m_Entries->empty() ? 0 : m_SelectedEntry + 1, m_Entries->size()); |
||||||
|
+ mvprintw(0, 1, "%d/%d", m_Entries->empty() ? 0 : m_SelectedEntry + 1, (unsigned)m_Entries->size()); |
||||||
|
mvprintw(0, 10, "%s", entryTypeNames[m_EntriesType]); |
||||||
|
} |
||||||
|
|
||||||
|
-- |
||||||
|
2.38.1 |
||||||
|
|
@ -0,0 +1,70 @@ |
|||||||
|
Name: pamix |
||||||
|
Version: 1.6 |
||||||
|
Release: 10%{?dist} |
||||||
|
Summary: PulseAudio terminal mixer |
||||||
|
License: MIT |
||||||
|
URL: https://github.com/patroclos/PAmix |
||||||
|
Source0: https://github.com/patroclos/PAmix/archive/%{version}.tar.gz |
||||||
|
# ncurses 6.3 fixes, thanks to Sergei Trofimovich |
||||||
|
# commit 3400b9c |
||||||
|
Patch0: 0001-src-pamix_ui.cpp-always-use-s-style-format-for-print.patch |
||||||
|
# commit 5ef67fc |
||||||
|
Patch1: 0002-src-pamix_ui.cpp-fix-d-zu-printf-confusion.patch |
||||||
|
BuildRequires: cmake |
||||||
|
BuildRequires: gcc-c++ |
||||||
|
BuildRequires: ncurses-devel |
||||||
|
BuildRequires: pulseaudio-libs-devel |
||||||
|
# Libs are required automatically, server can be remote |
||||||
|
Recommends: pulseaudio |
||||||
|
|
||||||
|
%description |
||||||
|
PAmix is a simple, terminal-based mixer for PulseAudio inspired by pavucontrol. |
||||||
|
|
||||||
|
%prep |
||||||
|
%autosetup -n PAmix-%{version} -p1 |
||||||
|
|
||||||
|
%build |
||||||
|
%cmake -DCMAKE_BUILD_TYPE=RELEASE -DWITH_UNICODE=1 |
||||||
|
%cmake_build |
||||||
|
|
||||||
|
%install |
||||||
|
%cmake_install |
||||||
|
|
||||||
|
%files |
||||||
|
%license LICENSE |
||||||
|
%doc README.md |
||||||
|
%{_bindir}/%{name} |
||||||
|
%{_mandir}/man1/%{name}.1* |
||||||
|
%config(noreplace) %{_sysconfdir}/%{name}.conf |
||||||
|
|
||||||
|
%changelog |
||||||
|
* Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.6-10 |
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild |
||||||
|
|
||||||
|
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.6-9 |
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild |
||||||
|
|
||||||
|
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.6-8 |
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild |
||||||
|
|
||||||
|
* Tue Jan 24 2023 Petr Šabata <contyk@redhat.com> - 1.6-7 |
||||||
|
- Fix FTBFS with current ncurses |
||||||
|
- SPDX migration |
||||||
|
|
||||||
|
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.6-6 |
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild |
||||||
|
|
||||||
|
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.6-5 |
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild |
||||||
|
|
||||||
|
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.6-4 |
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild |
||||||
|
|
||||||
|
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.6-3 |
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild |
||||||
|
|
||||||
|
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.6-2 |
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild |
||||||
|
|
||||||
|
* Sat Nov 14 2020 Petr Šabata <contyk@redhat.com> - 1.6-1 |
||||||
|
- Initial packaging |
Loading…
Reference in new issue