mirror of
https://github.com/strophe/libstrophe.git
synced 2026-07-17 19:36:22 +00:00
Fix SM-serialization testcase
`xmpp_run_once()` uses `FD_SET()` to determine which sockets to `select()` on. The socket gets initialized to `INVALID_SOCKET = -1` inside `xmpp_conn_new()` which leads to a buffer overflow once `FD_SET()` is called. This is only exposed when enabling a higher optimization level, which was only done in the `release-test` CI job. * Fix this testcase by initializing the socket to a possible value. * Build the Valgrind CI jobs with `-O2`. * Make the output of the `release-test` more verbose. Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
This commit is contained in:
11
.github/workflows/main.yml
vendored
11
.github/workflows/main.yml
vendored
@@ -14,8 +14,8 @@ jobs:
|
||||
strategy:
|
||||
matrix:
|
||||
valgrind:
|
||||
- { configure: '' , make: 'check' }
|
||||
- { configure: '--enable-valgrind' , make: 'check-valgrind' }
|
||||
- { configure: '' , cflags: '', make: 'check' }
|
||||
- { configure: '--enable-valgrind' , cflags: '-O2', make: 'check-valgrind' }
|
||||
options:
|
||||
- { configure: '' }
|
||||
- { configure: '--without-libxml2' }
|
||||
@@ -35,7 +35,7 @@ jobs:
|
||||
- name: Build the library
|
||||
run: |
|
||||
./bootstrap.sh
|
||||
./configure ${{ matrix.options.configure }} ${{ matrix.valgrind.configure }} CFLAGS="-Werror -g3"
|
||||
./configure ${{ matrix.options.configure }} ${{ matrix.valgrind.configure }} CFLAGS="-Werror -g3 ${{ matrix.valgrind.cflags }}"
|
||||
make -j$(nproc)
|
||||
- name: Run tests
|
||||
run: |
|
||||
@@ -135,6 +135,11 @@ jobs:
|
||||
if: ${{ !failure() }}
|
||||
run: |
|
||||
cat testbuild.log
|
||||
- name: Error logs
|
||||
if: ${{ failure() }}
|
||||
run: |
|
||||
cat testbuild.log || true
|
||||
cat testerr.log || true
|
||||
|
||||
code-style:
|
||||
runs-on: ubuntu-20.04
|
||||
|
||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -46,6 +46,7 @@ examples/roster
|
||||
examples/uuid
|
||||
examples/vcard
|
||||
testbuild*.log
|
||||
testerr*.log
|
||||
test-release/
|
||||
test_stamp
|
||||
test-suite*.log
|
||||
|
||||
@@ -333,6 +333,7 @@ dist-archives:
|
||||
|
||||
test-release: dist
|
||||
@touch testbuild-$(PACKAGE_VERSION).log && ln -sf testbuild-$(PACKAGE_VERSION).log testbuild.log
|
||||
@touch testerr-$(PACKAGE_VERSION).log && ln -sf testerr-$(PACKAGE_VERSION).log testerr.log
|
||||
@mkdir -p test-release && cp $(PACKAGE_TARNAME)-$(PACKAGE_VERSION).tar.* test-release && pushd test-release && \
|
||||
tar xzf $(PACKAGE_TARNAME)-$(PACKAGE_VERSION).tar.gz && pushd $(PACKAGE_TARNAME)-$(PACKAGE_VERSION) && ./testbuild.sh && popd && rm -rf $(PACKAGE_TARNAME)-$(PACKAGE_VERSION) && \
|
||||
echo "Success" && popd
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#!/bin/sh
|
||||
|
||||
logfile="../../testbuild.log"
|
||||
errfile="../../testerr.log"
|
||||
|
||||
err_out() {
|
||||
tail $logfile
|
||||
@@ -8,6 +9,6 @@ err_out() {
|
||||
}
|
||||
|
||||
./bootstrap.sh
|
||||
./configure >> $logfile || err_out
|
||||
make -j$(( `nproc` * 2 + 1 )) >> $logfile || err_out
|
||||
make check >> $logfile || err_out
|
||||
./configure >> $logfile 2>> $errfile || err_out
|
||||
make -j$(( `nproc` * 2 + 1 )) >> $logfile 2>> $errfile || err_out
|
||||
make check >> $logfile 2>> $errfile || err_out
|
||||
|
||||
@@ -147,6 +147,7 @@ int main()
|
||||
conn->intf = intf;
|
||||
state = conn->state;
|
||||
conn->state = XMPP_STATE_CONNECTED;
|
||||
conn->sock = 123;
|
||||
|
||||
xmpp_send_raw(conn, "foo", 3);
|
||||
ENSURE_EQ(xmpp_conn_send_queue_len(conn), 1);
|
||||
|
||||
Reference in New Issue
Block a user