Bugzilla will be upgraded to version 5.0. The upgrade date is tentatively scheduled for 2 December 2018, pending final testing and feedback.
Bug 1034441 - Net-SNMP libraries and headers are invalid due to hyphens.
Net-SNMP libraries and headers are invalid due to hyphens.
Status: CLOSED ERRATA
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: net-snmp (Show other bugs)
6.4
All Linux
medium Severity medium
: rc
: ---
Assigned To: Jan Safranek
BaseOS QE Security Team
: Reopened
Depends On:
Blocks: 1075802 1038642
  Show dependency treegraph
 
Reported: 2013-11-25 15:36 EST by Bryan Totty
Modified: 2015-07-22 03:22 EDT (History)
4 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Cause: net-snmp-config.h contains preprocessor macros with hyphen characters ('-') in their name. However, '-' is not allowed in a macro name. Consequence: C compiler shows extra 'warning: extra tokens at end of #ifdef directive', when compiling anything, that includes net-snmp-config.h Fix: Rename the macros to use underscores instead hyphens. Result: No compiler warnings.
Story Points: ---
Clone Of:
: 1038642 (view as bug list)
Environment:
Last Closed: 2015-07-22 03:22:18 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)


External Trackers
Tracker ID Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2015:1385 normal SHIPPED_LIVE Moderate: net-snmp security and bug fix update 2015-07-20 14:07:39 EDT

  None (edit)
Description Bryan Totty 2013-11-25 15:36:02 EST
Description of problem:

Net-SNMP libraries and headers are invalid due to hyphens.

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

gcc-4.4.7-4.el6.x86_64
libgcc-4.4.7-4.el6.x86_64
libgcc-4.4.7-4.el6.i686

How reproducible:

1. # vi test.c 

  #ifdef net-snmp-config_multilib_redirection_h
  #endif
  int main()
  {
  	        return 0;
  }


2. # gcc -o test test.c

  test.c:1:11: warning: extra tokens at end of #ifdef directive


Actual results:

The C program compiles but warns of: test.c:1:11: warning: extra tokens at end of #ifdef directive.

Remove the hyphens from the #ifdef and #define directives and the problem is fixed.


Expected results:

Absence of the extra token message.


Additional info:

Non-conformance of standards. C11 and C99 have a section under 6.4.2.1 that describes what is considered valid syntax for an identifier, which includes pre-processor macro identifiers.

http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf is the standard document for C99 which provides a reference.

Upon consideration of what is considered a valid identifier per C99, "net-snmp-config_multilib_redirection_h" is not a valid identifier because it contains a hyphen. The hyphen is not in the list of characters that are acceptable in an identifier.
Comment 1 Bryan Totty 2013-11-25 15:38:17 EST
Affects current net-snmp packages in RHEL 6.5:

net-snmp-libs-5.5-44.el6_4.4.x86_64
net-snmp-devel-5.5-44.el6_4.4.x86_64
net-snmp-5.5-44.el6_4.4.x86_64
net-snmp-utils-5.5-44.el6_4.4.x86_64
Comment 2 Jakub Jelinek 2013-11-25 15:56:08 EST
Sure, hyphen is not valid identifier, the above is handled essentially as
#ifdef net
with extra tokens after it for which it warns.  Various sources contain extra tokens after e.g. #ifdef, or #else, #endif etc.
If you want the compiler to error on this, just use -pedantic-errors, then you'll get a hard error instead of warning.
Comment 4 Jan Safranek 2013-12-05 09:40:49 EST
Well, it can still be fixed on net-snmp side simply by renaming net-snmp-* symbols to net_snmp_*.
Comment 11 errata-xmlrpc 2015-07-22 03:22:18 EDT
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHSA-2015-1385.html

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