Fabian Keil [Sat, 18 Oct 2014 11:30:40 +0000 (11:30 +0000)]
jb_err_to_string(): Only check for internal errors once
Silences a Coverity complaint about unreachable code.
CID 66387.
Fabian Keil [Sat, 18 Oct 2014 11:30:24 +0000 (11:30 +0000)]
The filter file array can't be NULL so don't bother checking
The intention was checking whether or not filters are available,
but that's a premature optimization for an unlikely scenario,
so the bogus checks can be dropped without replacement.
CID 66389, CID 66385, CID 66375.
Fabian Keil [Sat, 18 Oct 2014 11:30:04 +0000 (11:30 +0000)]
server_content_encoding(): Check for enabled content filters properly
Previously external filters and gif deanimation weren't considered.
CID 66374.
Fabian Keil [Sat, 18 Oct 2014 11:29:48 +0000 (11:29 +0000)]
Fix error handling in edit_write_file()
CID 66359.
Fabian Keil [Sat, 18 Oct 2014 11:29:22 +0000 (11:29 +0000)]
Fix error handling in edit_read_file()
CID 66359.
Fabian Keil [Sat, 18 Oct 2014 11:29:06 +0000 (11:29 +0000)]
edit_read_file(): Remove bogus NULL check and use strdup_or_die() instead
CID 66372.
Fabian Keil [Sat, 18 Oct 2014 11:28:49 +0000 (11:28 +0000)]
Fix memory leak in cgi_show_file()
CID 66362.
Fabian Keil [Sat, 18 Oct 2014 11:28:36 +0000 (11:28 +0000)]
Use strdup_or_die() if the duplicated string is tiny
Fixes a theoretical memory leak in trust_url() reported by Coverity.
CID 66364.
Fabian Keil [Sat, 18 Oct 2014 11:28:05 +0000 (11:28 +0000)]
bind_port(): Fix file descriptor leak in error path
CID 66368.
Fabian Keil [Sat, 18 Oct 2014 11:27:43 +0000 (11:27 +0000)]
In bind_port(), check if the socket is valid before marking it CLOSEEXEC
Fabian Keil [Sat, 18 Oct 2014 11:27:28 +0000 (11:27 +0000)]
Fix memory leaks in load_config()
CID 66370.
Fabian Keil [Sat, 18 Oct 2014 11:27:04 +0000 (11:27 +0000)]
Fix memory leak in pcrs_compile_dynamic_command()
CID 66373.
Fabian Keil [Sat, 18 Oct 2014 11:26:48 +0000 (11:26 +0000)]
Fix a theoretical memory leak in get_last_url()
CID 66378.
Fabian Keil [Sat, 18 Oct 2014 11:26:31 +0000 (11:26 +0000)]
load_file(): Treat fread() failures like other non-fatal file errors
... and check for underreads properly.
Previously Privoxy was supposedly serving the file partially
if it was edited in place, but actually would have served an
error message and leaked memory. Now it just serves the error
message (if it's run in a fantasy world were this actually
happens).
CID 66380, CID 66362, CID 66357.
Fabian Keil [Sat, 18 Oct 2014 11:26:18 +0000 (11:26 +0000)]
Fix a memory leak in execute_content_filters() if there's more than one job
Also don't crash if a job that isn't the last one fails.
CID 66381.
Fabian Keil [Sat, 18 Oct 2014 11:25:57 +0000 (11:25 +0000)]
execute_external_filter(): Fix file descriptor leak in error path
CID 66384.
Fabian Keil [Sat, 18 Oct 2014 11:25:42 +0000 (11:25 +0000)]
Fix theoretical memory leaks in edit_parse_actions_file()
CID 66388.
Fabian Keil [Sat, 18 Oct 2014 11:25:24 +0000 (11:25 +0000)]
Fix a comment typo
Fabian Keil [Sat, 18 Oct 2014 11:25:13 +0000 (11:25 +0000)]
Fix a theoretical memory leak in cgi_show_url_info()
In the real world map_block_killer() is unlikely to run out of memory.
CID 66392.
Fabian Keil [Sat, 18 Oct 2014 11:24:53 +0000 (11:24 +0000)]
accept_connection(): Adjust loop condition to silence a ressource leak warning
This is a nop because fd 0 is guaranteed to be in use and
thus can't be returned by accept() anyway.
CID 66393.
Fabian Keil [Sat, 18 Oct 2014 11:24:34 +0000 (11:24 +0000)]
server_http(): Make the HTTP reason phrase optional again
There are still servers around that that don't set one
and Privoxy doesn't really need it anyway.
Fabian Keil [Fri, 17 Oct 2014 14:45:41 +0000 (14:45 +0000)]
Bump copyright
Fabian Keil [Fri, 17 Oct 2014 14:45:29 +0000 (14:45 +0000)]
Add range-related tests for external-filter{}
Fabian Keil [Fri, 17 Oct 2014 14:45:10 +0000 (14:45 +0000)]
Prevent img-reorder from messing up img tags with empty src attributes
Fixes #880 reported by Duncan.
Fabian Keil [Thu, 16 Oct 2014 11:55:45 +0000 (11:55 +0000)]
Add #138: Analyse Coverity scan results
Remove #55 which is done.
Fabian Keil [Thu, 16 Oct 2014 11:55:15 +0000 (11:55 +0000)]
Disable +fast-redirects{} for ixquick-proxy.com/
Fabian Keil [Thu, 16 Oct 2014 11:54:58 +0000 (11:54 +0000)]
Add #137: Add a (preferably vector-based) logo
Fabian Keil [Mon, 6 Oct 2014 10:20:31 +0000 (10:20 +0000)]
Rebuild docs
Fabian Keil [Mon, 6 Oct 2014 10:20:09 +0000 (10:20 +0000)]
Update the 'Would you like to donate?' section
Mention that donations will be used to get TODO list
items done and add the Zwiebelfreunde e.V. bank
account.
Fabian Keil [Mon, 6 Oct 2014 10:19:43 +0000 (10:19 +0000)]
Add Sam Chen as contributor
Fabian Keil [Mon, 6 Oct 2014 10:19:30 +0000 (10:19 +0000)]
Change declared template file encoding to UTF-8
The files already used a subset of UTF-8 anyway and changing
the declaration allows to properly display UTF-8 characters
used in the action files.
This change may require existing action files with ISO-8859-1
characters that aren't valid UTF-8 to be converted to UTF-8.
Requested by Sam Chen in #582.
Fabian Keil [Mon, 6 Oct 2014 10:18:37 +0000 (10:18 +0000)]
Add #136: Make builds reproducible
Fabian Keil [Mon, 6 Oct 2014 10:18:25 +0000 (10:18 +0000)]
Remove and incorrect and an obsolete sentence from the action file section
Using Privoxy without action files is not actually pointless if
its only being used as HTTP router or HTTP to SOCK gateways.
People who still care about syntax changes in 3.0.7 should look at
the ChangeLog to see all the changes combined.
Fabian Keil [Mon, 6 Oct 2014 10:17:43 +0000 (10:17 +0000)]
Stop mentioning the log defaults before 3.0.7 which are no longer relevant
Fabian Keil [Mon, 6 Oct 2014 10:17:28 +0000 (10:17 +0000)]
Make it more obvious that many operating systems support log rotation out of the box
Fabian Keil [Mon, 6 Oct 2014 10:17:12 +0000 (10:17 +0000)]
Sync config.guess and config.sub with upstream 2012-12-23/
306afce2
... which is the last commit that is still GPLv2+.
Fabian Keil [Mon, 6 Oct 2014 10:13:56 +0000 (10:13 +0000)]
Add #135: Add OpenBSM audit support
Fabian Keil [Fri, 22 Aug 2014 09:45:29 +0000 (09:45 +0000)]
Update URL of the 'current development version of this file'
Fabian Keil [Fri, 8 Aug 2014 13:05:23 +0000 (13:05 +0000)]
Unblock 'adele*.'
Reported by Adele Lime in #1663.
Fabian Keil [Fri, 1 Aug 2014 12:34:21 +0000 (12:34 +0000)]
Unblock "adina*."
According to Wikipedia, "Adina is a Biblical Hebrew name meaning
delicate, slender, refined or gentle".
Fixes #919 reported by Morton A. Goldberg.
Fabian Keil [Fri, 25 Jul 2014 11:57:17 +0000 (11:57 +0000)]
Let server_http() regenerate the response line
... making sure Privoxy forwards a valid one.
Normalizing the HTTP-version is an explicit RFC 2616 MUST,
RFC 7230 mandates that intermediaries send their own
HTTP-version in forwarded messages.
Fabian Keil [Fri, 25 Jul 2014 11:56:54 +0000 (11:56 +0000)]
Let sed() failures result in an error response
While at it, make sure fatal parse errors are reported
to the caller right away.
Fabian Keil [Fri, 25 Jul 2014 11:56:26 +0000 (11:56 +0000)]
Normalize the HTTP-version in forwarded request lines
This is an explicit RFC 2616 MUST and RFC 7230 mandates
that intermediaries send their own HTTP-version in forwarded
messages.
Fabian Keil [Fri, 25 Jul 2014 11:56:02 +0000 (11:56 +0000)]
Update normalize_lws()'s description to reference RFC 7230
Fabian Keil [Fri, 25 Jul 2014 11:55:47 +0000 (11:55 +0000)]
Spell whitespace consistently without whitespace
That's how it's done in RFC 7230 which obsoletes RFC 2616.
Fabian Keil [Fri, 25 Jul 2014 11:55:27 +0000 (11:55 +0000)]
Bump copyright
Fabian Keil [Fri, 25 Jul 2014 11:55:11 +0000 (11:55 +0000)]
Reject requests with unsupported Expect header values
This changes the test status for the following Co-Advisor
tests from "Violation" to "Success":
rfc2616/unsuppExpect-0100-continue
rfc2616/unsuppExpect-100-continueing
rfc2616/unsuppExpect-expect=params
rfc2616/unsuppExpect-expect=quoted-100c
For RFC 2616 rejecting such requests was a MUST,
but RFC 7230 downgraded this to a MAY.
Fabian Keil [Fri, 25 Jul 2014 11:54:28 +0000 (11:54 +0000)]
Add #134: Track the total number of bytes written to and received from a socket.
Fabian Keil [Fri, 18 Jul 2014 10:19:46 +0000 (10:19 +0000)]
Regenerate docs
Fabian Keil [Fri, 18 Jul 2014 10:01:39 +0000 (10:01 +0000)]
Update the forward-override{} example to be consistent with the tagging example
Fabian Keil [Fri, 18 Jul 2014 10:01:20 +0000 (10:01 +0000)]
Note that invalid forward-override{} parameter syntax isn't detected until the parameter is used
Fabian Keil [Fri, 18 Jul 2014 10:00:11 +0000 (10:00 +0000)]
Add another +redirect{} example: a shortcut for illumos bugs
Fabian Keil [Fri, 18 Jul 2014 09:59:51 +0000 (09:59 +0000)]
Move a 'static' before the 'const'
Fabian Keil [Mon, 14 Jul 2014 13:37:08 +0000 (13:37 +0000)]
Clarify what Privoxy does if both +block{} and +redirect{} apply
Fabian Keil [Mon, 14 Jul 2014 13:01:28 +0000 (13:01 +0000)]
Block '/.*DigiAd'
Fabian Keil [Mon, 14 Jul 2014 13:01:02 +0000 (13:01 +0000)]
Move a pattern below its tests
Fabian Keil [Mon, 14 Jul 2014 13:00:07 +0000 (13:00 +0000)]
Add an external filter example to add '[citation needed]' tags to images
Finding images where this may make sense and the coordinates
fit is left as an excercise for the reader.
Fabian Keil [Mon, 14 Jul 2014 12:57:00 +0000 (12:57 +0000)]
Use a custom redirect{} for .washingtonpost.com/wp-apps/imrs\.php\?src=
Previously enabling the 'Advanced' settings (or manually enabling
+fast-redirects{}) prevented some images from being loaded properly.
As a side effect this commit expands Oleg's reach even further.
Fabian Keil [Mon, 14 Jul 2014 12:56:30 +0000 (12:56 +0000)]
Note that security issues shouldn't be reported using the bug tracker
Add myself as security contact as discussed on ijbswa-devel@
months ago.
Fabian Keil [Thu, 3 Jul 2014 10:19:47 +0000 (10:19 +0000)]
Note that donations will fund work on the TODO list
Fabian Keil [Wed, 25 Jun 2014 10:09:57 +0000 (10:09 +0000)]
Add #133: Consider allowing bitcoin donations
At least one donor is interested in this.
Fabian Keil [Wed, 25 Jun 2014 10:09:07 +0000 (10:09 +0000)]
Add #132: Provide a Tor hidden service to reach the Privoxy website
At least one donor is interested in this, it's not lot of work
and we can eat our own dogfood by putting Privoxy between the
Tor hidden service and the website to rewrite the requests.
Fabian Keil [Wed, 25 Jun 2014 10:08:13 +0000 (10:08 +0000)]
Mark TODO list items with the number of known donors who mentioned being interested in them
Fabian Keil [Wed, 25 Jun 2014 10:03:53 +0000 (10:03 +0000)]
Update the status of the curl-related work in progress for #1
Fabian Keil [Fri, 20 Jun 2014 09:49:31 +0000 (09:49 +0000)]
Verify that PATCH requests pass the unknown_method() check
Fabian Keil [Fri, 20 Jun 2014 09:47:10 +0000 (09:47 +0000)]
Bump copyright
Fabian Keil [Fri, 20 Jun 2014 09:46:56 +0000 (09:46 +0000)]
Add support for the 'PATCH' method as defined in RFC5789
Fabian Keil [Fri, 20 Jun 2014 09:46:13 +0000 (09:46 +0000)]
Remove a stray '1' in the 'html-annoyances' filter
Regression tests for the win.
Fabian Keil [Mon, 16 Jun 2014 10:17:38 +0000 (10:17 +0000)]
Add #131: handle-as-empty-doc-returns-ok should be replaced with an action
Fabian Keil [Mon, 16 Jun 2014 10:16:53 +0000 (10:16 +0000)]
Clarify that handle-as-empty-doc-returns-ok is still useful
... and will not be removed without replacement
Fabian Keil [Mon, 16 Jun 2014 10:15:32 +0000 (10:15 +0000)]
Add #130: Move header_tagger() out of the parser structs
Fabian Keil [Thu, 12 Jun 2014 13:10:21 +0000 (13:10 +0000)]
Remove a comment suggesting that normalize_lws()'s log message might be temporary
It's rarely seen in the real world and only visible if
header debugging has been enabled anyway.
Fabian Keil [Thu, 12 Jun 2014 13:09:03 +0000 (13:09 +0000)]
Reference RFC 7230 in remove_chunked_transfer_coding()'s description
... and note that the implementation is (still) incomplete.
Fabian Keil [Thu, 12 Jun 2014 13:08:42 +0000 (13:08 +0000)]
Add #129: Completely implement RFC 7230 4.1 (Chunked Transfer Coding)
Fabian Keil [Thu, 12 Jun 2014 13:08:25 +0000 (13:08 +0000)]
RFC 2616 is obsolete, update a comment in redirect_url()
Fabian Keil [Thu, 12 Jun 2014 13:07:19 +0000 (13:07 +0000)]
Add an external filter example to rotate images
Fabian Keil [Thu, 12 Jun 2014 13:06:54 +0000 (13:06 +0000)]
Add #128: Add a config directive to control the stack limit.
Fabian Keil [Tue, 3 Jun 2014 10:33:59 +0000 (10:33 +0000)]
Make it more obvious that +external-filter{} mostly behaves like +filter{}
Fabian Keil [Tue, 3 Jun 2014 10:33:17 +0000 (10:33 +0000)]
Let +external-filter{} only filter "text" by default
Given that this is what +filter{} does, it's probably
the expected behaviour.
Fabian Keil [Tue, 3 Jun 2014 10:31:27 +0000 (10:31 +0000)]
Let a couple of format strings use %u for unsigned integers
Fixes cppcheck warnings.
Fabian Keil [Tue, 3 Jun 2014 10:30:20 +0000 (10:30 +0000)]
Add another redirect{} example to stress that redirect loops can and should be avoided
Fabian Keil [Tue, 3 Jun 2014 10:29:40 +0000 (10:29 +0000)]
Fix white space
Fabian Keil [Tue, 3 Jun 2014 10:29:23 +0000 (10:29 +0000)]
Reduce indirection in get_content_type()
Fabian Keil [Tue, 3 Jun 2014 10:28:39 +0000 (10:28 +0000)]
Use strdup_or_die() where it makes sense
Fabian Keil [Tue, 3 Jun 2014 10:27:56 +0000 (10:27 +0000)]
Replace malloc() with malloc_or_die() when the size is puny
Fabian Keil [Tue, 3 Jun 2014 10:26:21 +0000 (10:26 +0000)]
Accept multi-digit HTTP major and minor versions in highlight_request_line()
Fabian Keil [Tue, 3 Jun 2014 10:25:57 +0000 (10:25 +0000)]
Reduce code duplication by setting http->ocmd in parse_http_request()
Fabian Keil [Tue, 3 Jun 2014 10:24:00 +0000 (10:24 +0000)]
Fix a cppcheck complaint in init_error_log()
Superfluous write to 'this_thread'.
Fabian Keil [Mon, 2 Jun 2014 07:23:14 +0000 (07:23 +0000)]
Add #127: Add "real" CGI support
Fabian Keil [Mon, 2 Jun 2014 07:22:40 +0000 (07:22 +0000)]
Remove #57 as it's done
Fabian Keil [Mon, 2 Jun 2014 06:24:51 +0000 (06:24 +0000)]
Rebuild HTML docs for external filters
Fabian Keil [Mon, 2 Jun 2014 06:23:23 +0000 (06:23 +0000)]
Rebuild config
Fabian Keil [Mon, 2 Jun 2014 06:22:22 +0000 (06:22 +0000)]
Bump copyright
Fabian Keil [Mon, 2 Jun 2014 06:20:51 +0000 (06:20 +0000)]
Add documentation for external filters
Fabian Keil [Mon, 2 Jun 2014 06:19:06 +0000 (06:19 +0000)]
Add support for external filters
... which allow to process the response body with a script
or program written in any language the platform supports.
External filters are enabled with +external-filter{} after
they have been defined in one of the filter files with
a header line starting with "EXTERNAL-FILTER:".
For this to work, a temporary directory has to be specified
using the newly-added temporary-directory directive.
External filters are experimental and not expected to
work on all platforms (yet).
Fabian Keil [Mon, 2 Jun 2014 05:46:53 +0000 (05:46 +0000)]
Remove a duplicated check for localtime_r()
Fabian Keil [Mon, 2 Jun 2014 05:45:44 +0000 (05:45 +0000)]
Also disable HTML filters for responses tagged with application/x-javascript
Fabian Keil [Mon, 26 May 2014 10:49:19 +0000 (10:49 +0000)]
Rebuild HTML docs for 3.0.22 UNSTABLE
Fabian Keil [Mon, 26 May 2014 10:48:39 +0000 (10:48 +0000)]
Bump entities for 3.0.22 UNRELEASED
Fabian Keil [Mon, 26 May 2014 10:48:07 +0000 (10:48 +0000)]
Resize an array in parse_http_request() to the appropriate size