Skip to content

Commit

Permalink
provide more includes to Cppcheck
Browse files Browse the repository at this point in the history
- added (temporary) suppression of Cppcheck `shiftTooManyBits` false positives in `libxrdp/xrdp_mppc_enc.c`
- added (temporary) suppression of Cppcheck `uninitMemberVar` true positives in `ulalaca/ulalaca.cpp` until fixes land downstream
- fix Cppcheck `nullPointerRedundantCheck` in `sesman/chansrv/clipboard.c`
- fix Cppcheck `syntaxError` in `fontutils/mkfv1.c` because it doesn't see the `freetype/fterrors.h` header / removed astyle workaround
  • Loading branch information
firewave committed Oct 17, 2023
1 parent b1fca01 commit f687174
Show file tree
Hide file tree
Showing 5 changed files with 21 additions and 16 deletions.
1 change: 1 addition & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,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
8 changes: 3 additions & 5 deletions fontutils/mkfv1.c
Original file line number Diff line number Diff line change
Expand Up @@ -37,11 +37,9 @@ static const struct
const char *err_msg;
} ft_errors[] =
#include <freetype/fterrors.h>

#if 0
/* These lines fix problems with astyle formatting following the ft_errors
* definition */
}
#ifdef __cppcheck__
// avoid syntaxError by providing the array contents
{};
#endif


Expand Down
10 changes: 7 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,6 +16,8 @@ if [ $# -ne 1 ]; then
fi
CPPCHECK_VER="$1"

apt-get update

case "$CPPCHECK_VER" in
1.*)
# no dependencies
Expand All @@ -23,7 +26,8 @@ case "$CPPCHECK_VER" in
# Cppcheck 2.8 removed the dependency on z3
;;
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
5 changes: 4 additions & 1 deletion scripts/run_cppcheck.sh
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,10 @@ 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 -i third_party"
--enable=warning --error-exitcode=1 -i third_party \
--suppress=uninitMemberVar:ulalaca/ulalaca.cpp \
--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 f687174

Please sign in to comment.