mirror of
https://github.com/openembedded/meta-openembedded.git
synced 2026-05-07 05:10:20 +00:00
samba: fix parsing linemarkers in preprocessor output
When PIDL calls out to C preprocessor to expand IDL files and parse the output, it filters out linemarkers and line control information as described in http://gcc.gnu.org/onlinedocs/cpp/Preprocessor-Output.html and http://gcc.gnu.org/onlinedocs/cpp/Line-Control.html#Line-Control With gcc 4.8 stdc-predef.h is included automatically and linemarker for the file has extended flags that PIDL couldn't parse ('system header that needs to be extern "C" protected for C++') Signed-off-by: Yue Tao <Yue.Tao@windriver.com> Signed-off-by: Chong Lu <Chong.Lu@windriver.com> Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
This commit is contained in:
committed by
Martin Jansa
parent
3d5d8c6d0f
commit
65ac416470
+68
@@ -0,0 +1,68 @@
|
||||
Upstream-Status: Backport
|
||||
|
||||
From b07ade6e6fcc8b844cf1fb8b6038617281c4c2d0 Mon Sep 17 00:00:00 2001
|
||||
From: Alexander Bokovoy <ab@samba.org>
|
||||
Date: Wed, 6 Feb 2013 10:17:57 +0200
|
||||
Subject: [PATCH] PIDL: fix parsing linemarkers in preprocessor output
|
||||
|
||||
Commit b07ade6e6fcc8b844cf1fb8b6038617281c4c2d0 v3-6-stable
|
||||
|
||||
When PIDL calls out to C preprocessor to expand IDL files
|
||||
and parse the output, it filters out linemarkers and line control
|
||||
information as described in http://gcc.gnu.org/onlinedocs/cpp/Preprocessor-Output.html
|
||||
and http://gcc.gnu.org/onlinedocs/cpp/Line-Control.html#Line-Control
|
||||
|
||||
With gcc 4.8 stdc-predef.h is included automatically and linemarker for the
|
||||
file has extended flags that PIDL couldn't parse ('system header that needs to
|
||||
be extern "C" protected for C++')
|
||||
|
||||
Thanks to Jakub Jelinek <jakub@redhat.com> for explanation of the linemarker format.
|
||||
|
||||
Fixes https://bugzilla.redhat.com/show_bug.cgi?id=906517
|
||||
|
||||
Reviewed-by: Andreas Schneider <asn@samba.org>
|
||||
(cherry picked from commit 6ba7ab5c14801aecae96373d5a9db7ab82957526)
|
||||
|
||||
Signed-off-by: Andreas Schneider <asn@samba.org>
|
||||
|
||||
Fix bug #9636 - pidl can't parse new linemarkers in preprocessor output.
|
||||
(cherry picked from commit 643571470f2e4cd2f58bd60ac7189abb826d33cc)
|
||||
(cherry picked from commit b5a8afd6550e9091d169d3010751913bb483fc4b)
|
||||
---
|
||||
pidl/idl.yp | 4 +++-
|
||||
pidl/lib/Parse/Pidl/IDL.pm | 4 +++-
|
||||
2 files changed, 6 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/pidl/idl.yp b/pidl/idl.yp
|
||||
index b5c5185..c8a65f6 100644
|
||||
--- a/pidl/idl.yp
|
||||
+++ b/pidl/idl.yp
|
||||
@@ -610,7 +610,9 @@ again:
|
||||
|
||||
for ($parser->YYData->{INPUT}) {
|
||||
if (/^\#/) {
|
||||
- if (s/^\# (\d+) \"(.*?)\"( \d+|)//) {
|
||||
+ # Linemarker format is described at
|
||||
+ # http://gcc.gnu.org/onlinedocs/cpp/Preprocessor-Output.html
|
||||
+ if (s/^\# (\d+) \"(.*?)\"(( \d+){1,4}|)//) {
|
||||
$parser->YYData->{LINE} = $1-1;
|
||||
$parser->YYData->{FILE} = $2;
|
||||
goto again;
|
||||
diff --git a/pidl/lib/Parse/Pidl/IDL.pm b/pidl/lib/Parse/Pidl/IDL.pm
|
||||
index d4820ff..6927c89 100644
|
||||
--- a/pidl/lib/Parse/Pidl/IDL.pm
|
||||
+++ b/pidl/lib/Parse/Pidl/IDL.pm
|
||||
@@ -2576,7 +2576,9 @@ again:
|
||||
|
||||
for ($parser->YYData->{INPUT}) {
|
||||
if (/^\#/) {
|
||||
- if (s/^\# (\d+) \"(.*?)\"( \d+|)//) {
|
||||
+ # Linemarker format is described at
|
||||
+ # http://gcc.gnu.org/onlinedocs/cpp/Preprocessor-Output.html
|
||||
+ if (s/^\# (\d+) \"(.*?)\"(( \d+){1,4}|)//) {
|
||||
$parser->YYData->{LINE} = $1-1;
|
||||
$parser->YYData->{FILE} = $2;
|
||||
goto again;
|
||||
--
|
||||
1.7.5.4
|
||||
|
||||
@@ -31,6 +31,7 @@ SRC_URI += "\
|
||||
file://configure-disable-core_pattern-cross-check.patch;patchdir=.. \
|
||||
file://configure-libunwind.patch;patchdir=.. \
|
||||
file://samba-3.6.22-CVE-2013-4496.patch;patchdir=.. \
|
||||
file://0001-PIDL-fix-parsing-linemarkers-in-preprocessor-output.patch;patchdir=.. \
|
||||
"
|
||||
SRC_URI[md5sum] = "fbb245863eeef2fffe172df779a217be"
|
||||
SRC_URI[sha256sum] = "4f5a171a8d902c6b4f822ed875c51eb8339196d9ccf0ecd7f6521c966b3514de"
|
||||
|
||||
Reference in New Issue
Block a user