From 2b54ac015a4f19653869cdd0500e91213fd966e7 Mon Sep 17 00:00:00 2001 From: TLINDEN Date: Wed, 26 Feb 2014 18:26:44 +0100 Subject: [PATCH 1/3] fixed another bug in ps_read_cached (buffer overflow in fact) --- include/pcp.h | 1 - libpcp/pcpstream.c | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/include/pcp.h b/include/pcp.h index fb0d6c6..8b16eae 100644 --- a/include/pcp.h +++ b/include/pcp.h @@ -8,7 +8,6 @@ extern "C" { #include "pcp/config.h" #include "pcp/base85.h" #include "pcp/buffer.h" -#include "pcp/config.h" #include "pcp/crypto.h" #include "pcp/defines.h" #include "pcp/digital_crc32.h" diff --git a/libpcp/pcpstream.c b/libpcp/pcpstream.c index f09ed58..44b1508 100644 --- a/libpcp/pcpstream.c +++ b/libpcp/pcpstream.c @@ -110,7 +110,7 @@ size_t ps_read_raw(Pcpstream *stream, void *buf, size_t readbytes) { size_t ps_read_cached(Pcpstream *stream, void *buf, size_t readbytes) { if(buffer_left(stream->cache) <= readbytes && buffer_left(stream->cache) > 0 && readbytes <= stream->blocksize) { /* enough left in current cache */ - return buffer_get_chunk(stream->cache, buf, readbytes); + return buffer_get_chunk(stream->cache, buf, buffer_left(stream->cache)); } else { /* request for chunk larger than what we've got in the cache */ From 1ac81a3ac35cc7a4ccf188c85b21561616abbd0e Mon Sep 17 00:00:00 2001 From: TLINDEN Date: Wed, 26 Feb 2014 18:27:10 +0100 Subject: [PATCH 2/3] added support for backticks in variables --- tests/unittests.pl | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/unittests.pl b/tests/unittests.pl index 09f4e16..cf39818 100755 --- a/tests/unittests.pl +++ b/tests/unittests.pl @@ -73,6 +73,10 @@ sub runtest { my($cfg, $name) = @_; my($in, $out, $error, $timeout); + foreach my $key (keys %{$cfg}) { + $cfg->{$key} =~ s/\`([^\`]*)\`/my $result = `$1`; chomp $result; $result/ge; + } + if (exists $cfg->{prepare}) { print STDERR " executing prepare command: $cfg->{prepare}\n" if ($verbose); if ($cfg->{prepare} =~ />/) { From 927541092dc3421b1d5f53dbda7aae7bfaf7f7f1 Mon Sep 17 00:00:00 2001 From: TLINDEN Date: Wed, 26 Feb 2014 18:27:34 +0100 Subject: [PATCH 3/3] added streams+armor unittest --- tests/unittests.cfg | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/tests/unittests.cfg b/tests/unittests.cfg index c35e94c..880ad91 100644 --- a/tests/unittests.cfg +++ b/tests/unittests.cfg @@ -35,6 +35,40 @@ include keys.cfg + + + md5 = `md5 -q ../COPYING` + cmd = ./pipetest 8 8 e < ../COPYING | ./pipetest 8 8 d | md5 -q + expect = /$md5/ + + + md5 = `md5 -q ../COPYING` + cmd = ./pipetest 8 16 e < ../COPYING | ./pipetest 8 16 d | md5 -q + expect = /$md5/ + + + md5 = `md5 -q ../COPYING` + cmd = ./pipetest 16 8 e < ../COPYING | ./pipetest 16 8 d | md5 -q + expect = /$md5/ + + + md5 = `md5 -q ../COPYING` + cmd = ./pipetest 64 32 e < ../COPYING | ./pipetest 64 32 d | md5 -q + expect = /$md5/ + + + md5 = `md5 -q ../COPYING` + cmd = ./pipetest 32 64 e < ../COPYING | ./pipetest 32 64 d | md5 -q + expect = /$md5/ + + + md5 = `md5 -q ../COPYING` + cmd = ./pipetest 64 64 e < ../COPYING | ./pipetest 64 64 d | md5 -q + expect = /$md5/ + + + + cmd = $pcp -h expect = /export/