
Prevent a segmentation fault which occurs when using incorrect
structure trying to access name of some named operators, such as 
CPP_NOT, CPP_AND etc. "token->val.node.spelling" cannot be used in
those cases, as is may not be initialized at all.


[YOCTO #11738]

Upstream-Status: Pending

Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>

diff --git a/libcpp/lex.c b/libcpp/lex.c
--- a/libcpp/lex.c
+++ b/libcpp/lex.c
@@ -3229,11 +3229,27 @@
     spell_ident:
     case SPELL_IDENT:
       if (forstring)
-	{
-	  memcpy (buffer, NODE_NAME (token->val.node.spelling),
-		  NODE_LEN (token->val.node.spelling));
-	  buffer += NODE_LEN (token->val.node.spelling);
-	}
+        {
+          if (token->type == CPP_NAME)
+            {
+              memcpy (buffer, NODE_NAME (token->val.node.spelling),
+                    NODE_LEN (token->val.node.spelling));
+              buffer += NODE_LEN (token->val.node.spelling);
+              break;
+            }
+          /* NAMED_OP, cannot use node.spelling */
+          if (token->flags & NAMED_OP)
+            {
+              const char *str = cpp_named_operator2name (token->type);
+              if (str)
+                {
+                  size_t len = strlen(str);
+                  memcpy(buffer, str, len);
+                  buffer += len;
+                }
+              break;
+            }
+        }
       else
 	buffer = _cpp_spell_ident_ucns (buffer, token->val.node.node);
       break;
