Bug 783439 - Add __format__((printf)) annotation to avc_log_callback
Add __format__((printf)) annotation to avc_log_callback
Product: Fedora
Classification: Fedora
Component: libselinux (Show other bugs)
Unspecified Unspecified
unspecified Severity unspecified
: ---
: ---
Assigned To: Daniel Walsh
Fedora Extras Quality Assurance
Depends On:
Blocks: 783440
  Show dependency treegraph
Reported: 2012-01-20 07:13 EST by Daniel Berrange
Modified: 2012-10-16 15:23 EDT (History)
2 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 783440 (view as bug list)
Last Closed: 2012-10-16 15:23:14 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)

  None (edit)
Description Daniel Berrange 2012-01-20 07:13:34 EST
Description of problem:
In libvirt we are implementing callbacks for the avc_log_callback struct. When compiling with -Werror=missing-format-attribute, we get a warning caused by the selinux/avc.h header file:

  CC     libvirt_driver_access_la-viraccessdriverselinux.lo
access/viraccessdriverselinux.c:59:5: error: initialization left-hand side might be a candidate for a format attribute [-Werror=missing-format-attribute]
access/viraccessdriverselinux.c: In function 'virAccessDriverSELinuxAVCCreateThread':
access/viraccessdriverselinux.c:247:9: error: expected expression before ')' token

This is caused by this struct definition:

struct avc_log_callback {
        /* log the printf-style format and arguments. */
        void (*func_log) (const char *fmt, ...);

Which should have an annotation like:

struct avc_log_callback {
        /* log the printf-style format and arguments. */
        void (*func_log) (const char *fmt, ...) __attribute__ ((__format__(printf, 1, 2)));

This ensures the compiler does strict argument checking

Version-Release number of selected component (if applicable):

Affects all Fedora releases & all RHEL

Note You need to log in before you can comment on or make changes to this bug.