RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.
Bug 1034441 - Net-SNMP libraries and headers are invalid due to hyphens.
Summary: Net-SNMP libraries and headers are invalid due to hyphens.
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: net-snmp
Version: 6.4
Hardware: All
OS: Linux
medium
medium
Target Milestone: rc
: ---
Assignee: Jan Safranek
QA Contact: BaseOS QE Security Team
URL:
Whiteboard:
Depends On:
Blocks: 1038642 1075802
TreeView+ depends on / blocked
 
Reported: 2013-11-25 20:36 UTC by Bryan Totty
Modified: 2018-12-05 16:39 UTC (History)
4 users (show)

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.
Clone Of:
: 1038642 (view as bug list)
Environment:
Last Closed: 2015-07-22 07:22:18 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2015:1385 0 normal SHIPPED_LIVE Moderate: net-snmp security and bug fix update 2015-07-20 18:07:39 UTC

Description Bryan Totty 2013-11-25 20:36:02 UTC
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 20:38:17 UTC
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 20:56:08 UTC
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 14:40:49 UTC
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 07:22:18 UTC
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.