Commit graph

3585 commits

Author SHA1 Message Date
RincewindsHat
03efbb8e4f check_http: Implement special case test for zero size chunk only 2023-02-06 12:15:46 +01:00
RincewindsHat
6d3e44d2d8 check_http: Handle chunked encoding without actual content correctly 2023-02-06 11:39:44 +01:00
Jan Wagner
fc8a233854 Updating documentation to new version number 2023-02-02 10:24:40 +00:00
Jan Wagner
0208994b9a Switch back to git version 2023-02-02 10:21:40 +00:00
Jan Wagner
1a964086aa Preaparing Release 2.3.3 2023-02-01 13:40:55 +00:00
Jan Wagner
e88a2889da Update release doc to recent versions 2023-02-01 13:10:17 +00:00
Lorenz
2ad962c134
Merge pull request #1830 from monitoring-plugins/fix_1829
check_http: Fix memory reallocation error in chunk decoding logic
2023-01-31 12:18:14 +01:00
Lorenz Kästle
d3fbcd1220 check_http: Add space for ending NULL byte in array for chunked encoding 2023-01-30 13:33:46 +01:00
Lorenz Kästle
d9528c265b check_http: Fix memory reallocation error in chunk decoding logic
This patch should fix an error with the way memory reallocation was
used, which resulted in "realloc(): invalid next size".
It is not completely clear to me as to what caused this problem, but
apparently one can not depend handing a pointer to "realloc(3)" and
expect that it still works afterwards, but one should/must use the one
returned by the function.

Also this patch replaces a variable which was used to remember the
position in the array by just computing that from the current values.
2023-01-30 12:45:20 +01:00
Lorenz
67b472f9d1
check_disk: Clarify usage possibilites (#1745)
* Clarify usage possibilites of check_disk

* Remove superfluous newlines

Co-authored-by: waja <waja@users.noreply.github.com>
2023-01-20 12:08:15 +01:00
lorenzg
c410ad3879 add tests for check_log 2023-01-20 09:11:26 +01:00
lgmu
b153a8c499 Fix indents 2023-01-20 09:11:26 +01:00
lgmu
db1f87c39e Added --exclude, cleanup args, fix -a count bug
Added --exclude to exclude patterns
Cleaned up duplicated code in the args
Fixed a bug when using --all because the count always returned "1" even when nothing matched

entry=$($GREP "$query" "$tempdiff")
count=$(echo "$entry" | wc -l)

Example:

$ touch testfile
$ TEST123=$(grep 'test' testfile)
$ echo "$TEST123" | wc -l
1
2023-01-20 09:11:26 +01:00
Sven Nierlein
f4930aee28 fix check_snmp regex matches
the multiplier function always tried to extract a number, even if the result
is a string because of using a mib.

before:
```
./check_snmp -H hostname -P2c -c public -o IF-MIB::ifAdminStatus.11466 -vvv -r 0
/usr/bin/snmpget -Le -t 10 -r 5 -m ALL -v 2c [context] [authpriv] 10.0.13.11:161 IF-MIB::ifAdminStatus.11466
IF-MIB::ifAdminStatus.11466 = INTEGER: up(1)
Processing oid 1 (line 1)
  oidname: IF-MIB::ifAdminStatus.11466
  response:  = INTEGER: up(1)
SNMP OK - 0 | IF-MIB::ifAdminStatus.11466=0;;
```

the regexp 0 matches, even if the actual result is "up(1)".

after this patch:
```
./check_snmp -H hostname -P2c -c public -o IF-MIB::ifAdminStatus.11466 -vvv -r 0
/usr/bin/snmpget -Le -t 10 -r 5 -m ALL -v 2c [context] [authpriv] 10.0.13.11:161 IF-MIB::ifAdminStatus.11466
IF-MIB::ifAdminStatus.11466 = INTEGER: up(1)
Processing oid 1 (line 1)
  oidname: IF-MIB::ifAdminStatus.11466
  response:  = INTEGER: up(1)
SNMP CRITICAL - *up(1)* |
```
2023-01-20 08:57:56 +01:00
andrew bezella
916572c1ae Fixing nullmailer regex
attached is a patch that updates the format expected in the nullmailer
mailq output.  the regex is a little more flexible and less specific
than the previous version.
2023-01-18 22:09:12 +01:00
waja
72147140ed
Fixing spelling errors (#1826) 2023-01-17 15:42:54 +01:00
Lorenz
0899e41f50
Check apt usage (#1793)
* Remove trailing whitespaces

* Use real booleans

* Fix comment

* Put upgrade options in the root sections

Co-authored-by: waja <waja@users.noreply.github.com>
2023-01-08 17:23:53 +01:00
Sven Nierlein
07561a67ab tests: fix chunked encoding test server 2023-01-07 18:34:46 +01:00
Sven Nierlein
c256af44fb check_http/check_curl: add chunked encoding test 2023-01-07 18:34:46 +01:00
RincewindsHat
6ed7a75c3b Reformat a part to increase readability 2023-01-07 18:34:46 +01:00
RincewindsHat
67d1062530 Undo clang formatting 2023-01-07 18:34:46 +01:00
RincewindsHat
029168276f Fix several bug in the implementation of unchunking 2023-01-07 18:34:46 +01:00
RincewindsHat
3e63e61f6a Fix chunked header detection regex 2023-01-07 18:34:46 +01:00
RincewindsHat
1ac8f35301 Fix type of unchunk_content function declaration 2023-01-07 18:34:46 +01:00
RincewindsHat
48d6ef2557 Undo sorting of header file includes, it breaks the build 2023-01-07 18:34:46 +01:00
RincewindsHat
afe92468a5 Implement chunked encoding decoding 2023-01-07 18:34:46 +01:00
RincewindsHat
2c658383d5 Restructure code a bit to put things where they are actually needed 2023-01-07 18:34:46 +01:00
RincewindsHat
d4502f246f Remove legacy comments and add some new ones 2023-01-07 18:34:46 +01:00
RincewindsHat
c0c096d2ef Remove dead code 2023-01-07 18:34:46 +01:00
RincewindsHat
2315f59835 clang format 2023-01-07 18:34:46 +01:00
RincewindsHat
d2a05e0d12 Document process_arguments a little bit better 2023-01-07 18:34:46 +01:00
RincewindsHat
2752f91099 Update copyright 2023-01-07 18:34:46 +01:00
RincewindsHat
698eed58f8 Use real booleans instead of ints 2023-01-07 18:34:46 +01:00
Sven Nierlein
9ba8f5ed66 check_snmp: always apply format when applying multiplier 2022-12-22 12:54:51 +01:00
Robert Bohne
def946bd97 Improve tests for check_snmp & multiply option 2022-12-22 12:54:51 +01:00
Wolfgang Nieder
c35bf8966a add 'multiplier' to modify current value 2022-12-22 12:54:51 +01:00
Sven Nierlein
765b29f09b
check_curl: fix checking large bodys (#1823)
check_curl fails on large pages:

  HTTP CRITICAL - Invalid HTTP response received from host on port 5080: cURL returned 23 - Failure writing output to destination

for example trying to run check_curl on the test from #1822

I guess the idea is to double the buffer size each time it is to small. But the code
exponentially grows the buffer size which works well 2-3 times, but then fails.
2022-12-22 12:51:18 +01:00
Danijel Tasov
763862a61c make check_http faster with larger files
The current implementation becomes exponentially slower with growing
response size.

See also:

https://github.com/nagios-plugins/nagios-plugins/blob/release-2.4.2/plugins/check_http.c#L1199-L1204

Test:

    $ mkdir web
    $ nohup python3 -m http.server -d web 5080 &
    $ perl -E 'say "0123456789" for (1..2_000_000)' >| web/file.txt
    $ ./check_http.orig  -t 200 -v  -I localhost -p 5080 -u /file.txt > test1.txt
    real    0m26.893s
    user    0m12.661s
    sys     0m14.221s
    $ time ./check_http -t 200 -v  -I localhost -p 5080 -u /file.txt > test2.txt
    real    0m0.038s
    user    0m0.011s
    sys     0m0.027s
    $ diff -u test[12].txt
    --- test1.txt   2022-12-21 14:58:28.720260811 +0100
    +++ test2.txt   2022-12-21 14:58:42.640008604 +0100
    @@ -7,7 +7,7 @@
     STATUS: HTTP/1.0 200 OK
     **** HEADER ****
     Server: SimpleHTTP/0.6 Python/3.9.2
    -Date: Wed, 21 Dec 2022 13:58:01 GMT
    +Date: Wed, 21 Dec 2022 13:58:42 GMT
     Content-type: text/plain
     Content-Length: 22000000
     Last-Modified: Wed, 21 Dec 2022 13:57:58 GMT
    @@ -2000013,4 +2000013,4 @@
     0123456789
     0123456789

    -HTTP OK: HTTP/1.0 200 OK - 22000191 bytes in 26.860 second response time |time=26.860182s;;;0.000000;200.000000 size=22000191B;;;0;
    +HTTP OK: HTTP/1.0 200 OK - 22000191 bytes in 0.016 second response time |time=0.016412s;;;0.000000;200.000000 size=22000191B;;;0;
2022-12-22 10:15:59 +01:00
RincewindsHat
0551151a57 Remove trailing whitespaces 2022-12-20 10:19:10 +01:00
RincewindsHat
28553e8d1c Fix unknown escape sequence error output 2022-12-20 10:19:10 +01:00
christian-2
dd249c5d4b
check_disk: Find accessible mount path if multiple are available (#1820)
* fixes #1819
* mount entries also have to be accessible according to get_fs_usage()
2022-12-13 23:48:36 +01:00
Aksel Sjögren
a517c62c1b check_http: fix test plan
Fix test plan when run with NP_INTERNET_ACCESS=no, where the correct
number of steps must be skipped.
Caused by a removed test in 65fc706429.

Signed-off-by: Aksel Sjögren <asjogren@itrsgroup.com>
2022-11-29 16:38:33 +01:00
Aksel Sjögren
e5db81bb29 check_icmp: fix parsing help/version long options
Fix parsing of the long options --help and --version. The special
handling must be done before calling getopt().
This fixes erroneous output like:

    ./check_icmp --version
    ./check_icmp: invalid option -- '-'
    ./check_icmp: invalid option -- 'e'
    ./check_icmp: invalid option -- 'r'
    ./check_icmp: invalid option -- '-'
    ./check_icmp: invalid option -- 'e'
    ./check_icmp: invalid option -- 'r'

Signed-off-by: Aksel Sjögren <asjogren@itrsgroup.com>
2022-11-29 16:38:33 +01:00
dependabot[bot]
1bc6d81651 Bump actions/checkout from 2 to 3
Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-11 06:28:27 +01:00
dependabot[bot]
de06e5832e
Bump github/codeql-action from 1 to 2 (#1812)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 1 to 2.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/v1...v2)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-07 17:49:31 +01:00
Lorenz
4a5ddd2011
Check curl detect ipv6 (#1809)
* If server_address is an IPv6 address surround it with brackets

* If the message is too short, we should not have an underflow

* Add simple conditional test case available if IPv6 is
2022-11-07 17:48:28 +01:00
waja
8708fd21a6
Adding dependabot config which takes care of updating github actions (#1811) 2022-11-07 17:47:30 +01:00
Lorenz
f7f7309b99
Update GitHub runner (#1810)
* Update action/checkout to v3

* Format debian prepare script
2022-11-06 23:12:41 +01:00
Lorenz
edc84e5d66
Remove superflous CRLF in HTTP-Requests in check_http (#1798)
* Remove superflous CRLF in HTTP-Requests in check_http
2022-11-05 13:59:45 +01:00
waja
2d9c6276d0
Removing is_pg_dbname alltogether,using postgres API. (Closes: #1660) (#1803)
The problem is that check_pgsql validates the Database name and has different assumptions
that postgres itself.

I fail to see a reason to validate the database name here. Postgres'es API should
do this - So i would suggest a fix like this by removing is_pg_dbname alltogether.

Co-authored-by: Florian Lohoff <f@zz.de>
2022-11-04 19:16:01 +01:00