Skip to content

Commit

Permalink
Merge pull request #2830 from matt335672/v0_9_cppcheck-inc
Browse files Browse the repository at this point in the history
[V0.9] updated Cppcheck to 2.12.1 / provide more includes to Cppcheck
  • Loading branch information
matt335672 authored Oct 18, 2023
2 parents 66c668c + 2c0749d commit b782340
Show file tree
Hide file tree
Showing 5 changed files with 26 additions and 15 deletions.
3 changes: 2 additions & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ jobs:
CC: gcc
# This is required to use a version of cppcheck other than that
# supplied with the operating system
CPPCHECK_VER: "2.11"
CPPCHECK_VER: "2.12.1"
CPPCHECK_REPO: https://github.com/danmar/cppcheck.git
steps:
# Set steps.os.outputs.image to the specific OS (e.g. 'ubuntu20')
Expand All @@ -145,6 +145,7 @@ jobs:
key: ${{ steps.os.outputs.image }}-build-${{ env.cache-name }}-${{ env.CPPCHECK_VER }}
- run: sudo scripts/install_cppcheck_dependencies_with_apt.sh $CPPCHECK_VER
- run: ./bootstrap
- run: ./configure
- run: scripts/install_cppcheck.sh $CPPCHECK_REPO $CPPCHECK_VER
- run: scripts/run_cppcheck.sh -v $CPPCHECK_VER

Expand Down
9 changes: 6 additions & 3 deletions scripts/install_cppcheck.sh
Original file line number Diff line number Diff line change
Expand Up @@ -123,17 +123,20 @@ fi

cd "$workdir"

make_args="MATCHCOMPILER=yes FILESDIR=$FILESDIR PREFIX=$FILESDIR"

case "$CPPCHECK_VER" in
1.*)
# CFGDIR is needed for cppcheck before 1.86
make_args="FILESDIR=$FILESDIR PREFIX=$FILESDIR CFGDIR=$FILESDIR"
make_args="$make_args CFGDIR=$FILESDIR"
;;
2.8 | 2.9 | 2.1*)
# Cppcheck 2.8 removed the dependency on z3
make_args="FILESDIR=$FILESDIR PREFIX=$FILESDIR"
# Cppcheck 2.8 added optional support for utilizing Boost
make_args="$make_args CPPFLAGS=-DHAVE_BOOST"
;;
2.*)
make_args="FILESDIR=$FILESDIR PREFIX=$FILESDIR USE_Z3=yes"
make_args="$make_args USE_Z3=yes"
# Check that the Z3 development files appear to be installed
# before trying to create z3_version.h. Otherwise we may
# mislead the user as to what needs to be done.
Expand Down
12 changes: 9 additions & 3 deletions scripts/install_cppcheck_dependencies_with_apt.sh
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
#!/bin/sh
set -eufx

PACKAGES="libz3-dev z3"
# these are the packages necessary to run ./configure so config_ac.h is generated
PACKAGES="libpam0g-dev libxfixes-dev libxrandr-dev nasm"

usage()
{
Expand All @@ -15,15 +16,20 @@ if [ $# -ne 1 ]; then
fi
CPPCHECK_VER="$1"

apt-get update

case "$CPPCHECK_VER" in
1.*)
# no dependencies
;;
2.8 | 2.9 | 2.1*)
# Cppcheck 2.8 removed the dependency on z3
# Cppcheck 2.8 added optional support for utilizing Boost
PACKAGES="$PACKAGES libboost-container-dev"
;;
2.*)
apt-get update
apt-get -yq --no-install-suggests --no-install-recommends install $PACKAGES
PACKAGES="$PACKAGES libz3-dev z3"
;;
esac

apt-get -yq --no-install-suggests --no-install-recommends install $PACKAGES
4 changes: 3 additions & 1 deletion scripts/run_cppcheck.sh
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,9 @@ fi
# Supply default flags passed to cppcheck if necessary
if [ -z "$CPPCHECK_FLAGS" ]; then
CPPCHECK_FLAGS="--quiet --force --std=c11 --std=c++11 --inline-suppr \
--enable=warning --error-exitcode=1"
--enable=warning --error-exitcode=1 \
--suppress=shiftTooManyBits:libxrdp/xrdp_mppc_enc.c \
-I . -I common"
fi
CPPCHECK_FLAGS="$CPPCHECK_FLAGS -D__cppcheck__"

Expand Down
13 changes: 6 additions & 7 deletions sesman/chansrv/clipboard.c
Original file line number Diff line number Diff line change
Expand Up @@ -2572,14 +2572,12 @@ clipboard_event_property_notify(XEvent *xevent)
format_in_bytes = FORMAT_TO_BYTES(actual_format_return);
new_data_len = nitems_returned * format_in_bytes;
cptr = (char *) g_malloc(g_clip_s2c.total_bytes + new_data_len, 0);
g_memcpy(cptr, g_clip_s2c.data, g_clip_s2c.total_bytes);
g_free(g_clip_s2c.data);

if (cptr == NULL)
{
/* cannot add any more data */
g_free(g_clip_s2c.data);
g_clip_s2c.data = 0;

/* cannot add any more data */
if (data != 0)
{
XFree(data);
Expand All @@ -2588,14 +2586,15 @@ clipboard_event_property_notify(XEvent *xevent)
XDeleteProperty(g_display, g_wnd, g_clip_s2c.property);
return 0;
}
g_memcpy(cptr, g_clip_s2c.data, g_clip_s2c.total_bytes);
g_free(g_clip_s2c.data);

LOG_DEVEL(LOG_LEVEL_DEBUG, "clipboard_event_property_notify: new_data_len %d", new_data_len);
g_clip_s2c.data = cptr;
g_memcpy(g_clip_s2c.data + g_clip_s2c.total_bytes, data, new_data_len);
g_clip_s2c.total_bytes += new_data_len;

if (data)
{
g_memcpy(g_clip_s2c.data + g_clip_s2c.total_bytes, data, new_data_len);
g_clip_s2c.total_bytes += new_data_len;
XFree(data);
}

Expand Down

0 comments on commit b782340

Please sign in to comment.