Bug 783440 - Add __format__((printf)) annotation to avc_log_callback
Summary: Add __format__((printf)) annotation to avc_log_callback
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: libselinux
Version: 6.3
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: rc
: ---
Assignee: Daniel Walsh
QA Contact: BaseOS QE Security Team
URL:
Whiteboard:
Depends On: 783439
Blocks:
TreeView+ depends on / blocked
 
Reported: 2012-01-20 12:14 UTC by Daniel Berrangé
Modified: 2012-01-25 04:47 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of: 783439
Environment:
Last Closed: 2012-01-24 16:05:21 UTC
Target Upstream Version:


Attachments (Terms of Use)

Description Daniel Berrangé 2012-01-20 12:14:24 UTC
+++ This bug was initially created as a clone of Bug #783439 +++

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):
libselinux-2.1.6-5.fc16.x86_64

Affects all Fedora releases & all RHEL

Comment 2 Daniel Walsh 2012-01-24 16:05:21 UTC
Fixed in libselinux-2.1.9-3.fc17


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