Loading...
--- xnu/xnu-792.21.3/libkern/c++/OSUnserialize.cpp
+++ xnu/xnu-1228/libkern/c++/OSUnserialize.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+ * Copyright (c) 2000-2006 Apple Computer, Inc. All rights reserved.
*
* @APPLE_OSREFERENCE_LICENSE_HEADER_START@
*
@@ -318,7 +318,7 @@
#define YYSTACK_USE_ALLOCA
#define alloca __builtin_alloca
#else /* not GNU C. */
-#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
+#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386)) || defined (__arm)
#define YYSTACK_USE_ALLOCA
#include <alloca.h>
#else /* not sparc */
@@ -1014,7 +1014,7 @@
{
int size = 0;
char *msg;
- int x, count;
+ int x, count, len;
count = 0;
/* Start X at -yyn if nec to avoid negative indexes in yycheck. */
@@ -1022,10 +1022,11 @@
x < (sizeof(yytname) / sizeof(char *)); x++)
if (yycheck[x + yyn] == x)
size += strlen(yytname[x]) + 15, count++;
- msg = (char *) malloc(size + 15);
+ len = size + 15;
+ msg = (char *) malloc(len);
if (msg != 0)
{
- strcpy(msg, "parse error");
+ strlcpy(msg, "parse error", len);
if (count < 5)
{
@@ -1034,9 +1035,10 @@
x < (sizeof(yytname) / sizeof(char *)); x++)
if (yycheck[x + yyn] == x)
{
- strcat(msg, count == 0 ? ", expecting `" : " or `");
- strcat(msg, yytname[x]);
- strcat(msg, "'");
+ strlcat(msg, count == 0 ? ", expecting `" : " or `",
+ len);
+ strlcat(msg, yytname[x], len);
+ strlcat(msg, "'", len);
count++;
}
}