Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
14d31ed
Prettify stats.html
vituperative Apr 22, 2022
26db3f6
Allow "XTinyProxy No" with xtinyproxy disabled
tstenner Apr 29, 2022
235b1c1
implement filtertype keyword and fnmatch-based filtering
rofl0r May 9, 2021
7d1e86c
don't try to send 408 error to closed client socket
rofl0r May 2, 2022
77cd87e
print error message if errorfile is configured but can't be opened
rofl0r May 27, 2022
d9e38ba
add gperf generated files to make dist
rofl0r May 27, 2022
d6ee383
configure: use release tarball provided gperf file
rofl0r May 27, 2022
ea75e79
CI: add github workflow to build release tarball
rofl0r May 27, 2022
90adf28
release 1.11.1
rofl0r May 27, 2022
8b373f8
update html documentation, add quickstart section
rofl0r May 30, 2022
121be4a
echo http protocol version on CONNECT request response
rofl0r Jul 15, 2022
84f203f
fix reversepath directive using https url giving misleading error
rofl0r Aug 20, 2022
3764b85
prevent junk from showing up in error page in invalid requests
rofl0r Sep 8, 2022
6ffd9af
hsearch: fix potential UB (pointer arithmetics on nullptr)
rofl0r Feb 1, 2023
470cc08
conf: fix potential crash with invalid input data
rofl0r Feb 1, 2023
31339cb
tinyproxy.conf.5: update text for bind directive
rofl0r Feb 1, 2023
ef60434
docs: typo fix
rofl0r Mar 20, 2023
2bec15e
Allow configuring IPv6 address for upstream proxy (#492)
Mario-Klebsch May 23, 2023
1e615e6
tinyproxy.conf.5: document config strings that require double quotes …
ivanwick May 24, 2023
d7c20e6
tinyproxy.conf.5: document syntax for upstream IPv6 addresses
rofl0r May 25, 2023
2935519
fix omission to reset socklen parameter for accept()
rofl0r Jun 7, 2023
1289d8a
conf: use case-independent match for Filtertype parameter
rofl0r Oct 13, 2023
c834073
fix CI by running apt update
rofl0r Oct 15, 2023
84285b6
BasicAuth: Accept special chars in username and password (#516)
vityank Nov 2, 2023
c4df45b
BasicAuth: Added logging for failed login attemps
Strongleong Nov 7, 2023
92289d5
main: print filename of config file used on (re)load
rofl0r May 1, 2024
12a8484
fix potential UAF in header handling (CVE-2023-49606)
rofl0r May 5, 2024
e69788b
Add SECURITY.md
rofl0r May 5, 2024
dd49e97
release 1.11.2
rofl0r May 8, 2024
942d0c6
Use appropriate installation path variables
mohd-akram Jun 2, 2024
72b93f6
CI: update release workflow to non-deprecated actions
rofl0r Jun 16, 2024
d652ed8
Omit the version number from headers and HTML responses (#543)
jpmckinney Jun 20, 2024
73da8a3
conf: add BasicAuthRealm feature (#547)
gruummy Jul 14, 2024
c04ba47
reqs: don't compile upstream code if feature disabled
rofl0r Oct 19, 2024
05f6e4e
basic auth: fix error status 401 vs 407
rofl0r Jul 15, 2024
cea0ebe
tinyproxy.conf.5: explain what a site_spec looks like
rofl0r Jan 6, 2025
56404a3
replace orderedmap for connection headers with linear list
rofl0r May 2, 2022
74f5f59
build: fix shellcheck errors in autogen.sh
obnoxxx Feb 13, 2025
0712ec3
tests: fix shellcheck issues and syntax errors in run_tests.sh
obnoxxx Feb 13, 2025
f134786
tests: fix shellcheck issues in run_tests_valgrind.sh
obnoxxx Feb 13, 2025
acd99f1
build: add `make shellcheck`
obnoxxx Feb 12, 2025
1a02315
CI: add a shellcheck ci workflow
obnoxxx Feb 10, 2025
0a2da97
tests: remove duplicate code from run_tests.sh
obnoxxx Feb 14, 2025
d62b7d2
remove unused vsyslog code
rofl0r May 1, 2025
d54e9a7
remove unused strlcat checks and fallback code
rofl0r May 1, 2025
8b02f86
remove redundant config_directive_entry CD_NIL
tangaac May 7, 2025
f0033b7
tinyproxy.conf.5: add an IPv6 example to allow/deny section
rofl0r Jun 21, 2025
3c0fde9
reqs: fix integer overflow in port number processing
rofl0r Oct 17, 2025
b383efe
fix making of man8
rofl0r Mar 7, 2026
baecbf4
release 1.11.3
rofl0r Mar 7, 2026
86a8f27
version.sh: fix use of non-annotated tags
rofl0r Mar 8, 2026
9240e60
CI: also check that website generation works
rofl0r Mar 8, 2026
1c4af67
Fix paths in man page
mohd-akram Mar 8, 2026
969852c
reqs: check negative length values when reading chunked data
rofl0r Mar 12, 2026
e77570a
fix catching timed-out socket (#599)
rofl0r Mar 28, 2026
bb7edc4
reqs: prevent potential int overflow when parsing chunked data (#603)
rofl0r Mar 29, 2026
879bf84
reqs: fix case-sensitive matching of "chunked" (#605)
rofl0r Apr 3, 2026
09312a1
reqs: improve stathost detection (#606)
rofl0r Apr 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ jobs:
- run: ./configure
- run: make
- run: make test
- run: cd docs/web ; make
test-macos:
runs-on: macos-latest
steps:
Expand All @@ -27,8 +28,8 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: install valgrind
run: sudo apt-get install --assume-yes valgrind
- run: sudo apt update
- run: sudo apt install --assume-yes valgrind
- run: ./autogen.sh
- run: ./configure --enable-debug --enable-transparent --enable-reverse
- run: make
Expand Down
40 changes: 40 additions & 0 deletions .github/workflows/release_tarball.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: Generate Source Tarball

# Trigger whenever a release is created
on:
release:
types:
- created

jobs:
build:
name: build
runs-on: ubuntu-latest
steps:

- uses: actions/checkout@v4
with:
submodules: recursive

- name: archive
id: archive
run: |
sudo apt install -y gperf
rm -rf .git
autoreconf -i
VERSION=$(cat VERSION)
PKGNAME="tinyproxy-$VERSION"
./configure
make dist
echo "tarball_xz=${PKGNAME}.tar.xz" >> "$GITHUB_OUTPUT"
echo "tarball_gz=${PKGNAME}.tar.gz" >> "$GITHUB_OUTPUT"
echo "tarball_bz2=${PKGNAME}.tar.bz2" >> "$GITHUB_OUTPUT"

- name: upload tarballs
uses: softprops/action-gh-release@v2
with:
files: |
${{ steps.archive.outputs.tarball_xz }}
${{ steps.archive.outputs.tarball_gz }}
${{ steps.archive.outputs.tarball_bz2 }}

33 changes: 33 additions & 0 deletions .github/workflows/shellcheck.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: shellcheck
on:
push:
branches:
- master
pull_request:
paths-ignore:
branches:
- master

# cancel the in-progress workflow when PR is refreshed.
concurrency:
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.head_ref || github.sha }}
cancel-in-progress: true

permissions:
contents: read

jobs:
shellcheck:
name: Shellcheck
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: install shellcheck
run: |
sudo apt-get update
sudo apt-get install -y shellcheck
- name: Run autogen
run: ./autogen.sh
- name: Run ShellCheck
run: make shellcheck

4 changes: 4 additions & 0 deletions Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,10 @@ EXTRA_DIST = \
test: all
./tests/scripts/run_tests.sh

.PHONY: shellcheck
shellcheck:
@shellcheck `find . -name '*.sh'`

test-wait:
TINYPROXY_TESTS_WAIT=yes $(MAKE) test

Expand Down
28 changes: 28 additions & 0 deletions SECURITY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Security Policy

## Supported Versions

| Version | Supported |
| --------- | ------------------ |
| 1.11.x | :white_check_mark: |
| <= 1.10.x | :x: |

## Reporting a Vulnerability

Open a public issue on github. The issue will most likely be fixed
within a day, unless all maintainers happen to just be taking a
vacation at the same time, which is unlikely.

Even then, having the bug publicly known will allow competent people
to come up with custom patches for distros, most likely quicker
than black hats can craft a remote execution exploit.

If you really really do not want to make the issue public, come
to the tinyproxy IRC channel and ask for a maintainer, which you
can then contact via private messages.

Do not, however, like ["TALOS Intelligence"](https://talosintelligence.com/vulnerability_reports/TALOS-2023-1889)
pull a random email address out of git log, then send an email
nobody reads or responds to, and wait for 6 months for publication.
this only gives black hats plenty time to sell, use and circulate
zero days and get the best possible ROI.
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.11.0
1.11.3
19 changes: 13 additions & 6 deletions autogen.sh
Original file line number Diff line number Diff line change
@@ -1,24 +1,31 @@
#!/bin/sh

srcdir=`dirname $0`
srcdir=$(dirname "$0")
test -z "$srcdir" && srcdir=.
ORIGDIR=`pwd`
ORIGDIR=$(pwd)

set -x

cd $srcdir
cd "$srcdir" || {
echo "error changing to dir '$srcdir'"
exit
}

aclocal -I m4macros \
&& autoheader \
&& automake --gnu --add-missing \
&& autoconf

cd $ORIGDIR
cd "$ORIGDIR" || {
echo "error changing to idir '$ORIGDIR'"
exit

}

set -

echo $srcdir/configure "$@"
$srcdir/configure "$@"
echo "$srcdir"/configure "$@"
"$srcdir"/configure "$@"
RC=$?
if test $RC -ne 0; then
echo
Expand Down
15 changes: 11 additions & 4 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@ AC_CHECK_HEADERS([sys/ioctl.h alloca.h memory.h malloc.h sysexits.h \
dnl Checks for libary functions
AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK

AC_CHECK_FUNCS([strlcpy strlcat setgroups])
AC_CHECK_FUNCS([strlcpy setgroups])

dnl Enable extra warnings
DESIRED_FLAGS="-fdiagnostics-show-option -Wall -Wextra -Wno-unused-parameter -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations -Wfloat-equal -Wundef -Wformat=2 -Wlogical-op -Wmissing-include-dirs -Wformat-nonliteral -Wold-style-definition -Wpointer-arith -Waggregate-return -Winit-self -Wpacked --std=c89 -ansi -Wno-overlength-strings -Wno-long-long -Wno-overlength-strings -Wdeclaration-after-statement -Wredundant-decls -Wmissing-noreturn -Wshadow -Wendif-labels -Wcast-qual -Wcast-align -Wwrite-strings -Wp,-D_FORTIFY_SOURCE=2 -fno-common"
Expand All @@ -173,6 +173,9 @@ fi
dnl
dnl Substitute the variables into the various Makefiles
dnl
# runstatedir isn't available for Autoconf < 2.70
AS_IF([test -z "${runstatedir}"], [runstatedir='${localstatedir}/run'])
AC_SUBST([runstatedir])
AC_SUBST(CFLAGS)
AC_SUBST(LDFLAGS)
AC_SUBST(CPPFLAGS)
Expand All @@ -194,20 +197,21 @@ fi #manpage_support_enabled
AM_CONDITIONAL(HAVE_POD2MAN, test "x$POD2MAN" != "x" -a "x$POD2MAN" != "xno")

AC_PATH_PROG(GPERF, gperf, no)
AM_CONDITIONAL(HAVE_GPERF, test "x$GPERF" != "x" -a "x$GPERF" != "xno")
AH_TEMPLATE([HAVE_GPERF],
[Whether you have gperf installed for faster config parsing.])

tmp_gperf=false
if test "x$GPERF" != "x" -a "x$GPERF" != "xno" ; then
AS_ECHO_N(["checking whether gperf is recent enough... "])
if "$GPERF" < src/conf-tokens.gperf >/dev/null 2>&1 ; then
AS_ECHO("yes")
AC_DEFINE(HAVE_GPERF)
tmp_gperf=true
else
AM_CONDITIONAL(HAVE_GPERF, false)
AS_ECHO("no")
fi
fi
AM_CONDITIONAL(HAVE_GPERF, $tmp_gperf)

AC_CONFIG_FILES([
Makefile
Expand All @@ -219,7 +223,6 @@ docs/Makefile
docs/man5/Makefile
docs/man5/tinyproxy.conf.txt
docs/man8/Makefile
docs/man8/tinyproxy.txt
m4macros/Makefile
tests/Makefile
tests/scripts/Makefile
Expand All @@ -244,3 +247,7 @@ if test "x$POD2MAN" = "xno" ; then
touch docs/man8/tinyproxy.8
fi
fi

if test "x$HAVE_GPERF" = "xno" && test -e src/conf-tokens-gperf.inc ; then
touch src/conf-tokens-gperf.inc
fi
5 changes: 1 addition & 4 deletions data/templates/debug.html
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,6 @@ <h1>{cause}</h1>
<dt>clienthost</dt>
<dd>{clienthost}</dd>

<dt>version</dt>
<dd>{version}</dd>

<dt>package</dt>
<dd>{package}</dd>

Expand All @@ -49,7 +46,7 @@ <h1>{cause}</h1>

<hr />

<p><em>Generated by <a href="{website}">{package}</a> version {version}.</em></p>
<p><em>Generated by <a href="{website}">{package}</a>.</em></p>

</body>

Expand Down
2 changes: 1 addition & 1 deletion data/templates/default.html
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ <h1>{cause}</h1>

<hr />

<p><em>Generated by <a href="{website}">{package}</a> version {version}.</em></p>
<p><em>Generated by <a href="{website}">{package}</a>.</em></p>

</body>

Expand Down
Loading