Al Stone c11325
Index: acpica-unix2-20180209/source/compiler/aslanalyze.c
Al Stone c11325
===================================================================
Al Stone c11325
--- acpica-unix2-20180209.orig/source/compiler/aslanalyze.c
Al Stone c11325
+++ acpica-unix2-20180209/source/compiler/aslanalyze.c
Al Stone c11325
@@ -355,11 +355,16 @@ AnCheckMethodReturnValue (
Al Stone c11325
          */
Al Stone c11325
         if (ThisNodeBtype != 0)
Al Stone c11325
         {
Al Stone c11325
-            sprintf (MsgBuffer,
Al Stone c11325
+	     int cnt;
Al Stone c11325
+	     char *strp;
Al Stone c11325
+
Al Stone c11325
+            cnt = asprintf (&strp,
Al Stone c11325
                 "Method returns [%s], %s operator requires [%s]",
Al Stone c11325
                 StringBuffer, OpInfo->Name, StringBuffer2);
Al Stone c11325
 
Al Stone c11325
-            AslError (ASL_ERROR, ASL_MSG_INVALID_TYPE, ArgOp, MsgBuffer);
Al Stone c11325
+            AslError (ASL_ERROR, ASL_MSG_INVALID_TYPE, ArgOp, strp);
Al Stone c11325
+	     if (cnt > 0)
Al Stone c11325
+	         free(strp);
Al Stone c11325
         }
Al Stone c11325
     }
Al Stone c11325
 }
Al Stone c11325
Index: acpica-unix2-20180209/source/compiler/aslpredef.c
Al Stone c11325
===================================================================
Al Stone c11325
--- acpica-unix2-20180209.orig/source/compiler/aslpredef.c
Al Stone c11325
+++ acpica-unix2-20180209/source/compiler/aslpredef.c
Al Stone c11325
@@ -159,14 +159,19 @@ ApCheckForPredefinedMethod (
Al Stone c11325
         if (MethodInfo->NumReturnNoValue &&
Al Stone c11325
             ThisName->Info.ExpectedBtypes)
Al Stone c11325
         {
Al Stone c11325
+	     int cnt;
Al Stone c11325
+	     char *strp;
Al Stone c11325
+
Al Stone c11325
             AcpiUtGetExpectedReturnTypes (StringBuffer,
Al Stone c11325
                 ThisName->Info.ExpectedBtypes);
Al Stone c11325
 
Al Stone c11325
-            sprintf (MsgBuffer, "%s required for %4.4s",
Al Stone c11325
-                StringBuffer, ThisName->Info.Name);
Al Stone c11325
+            cnt = asprintf (&strp, "%s required for %4.4s",
Al Stone c11325
+	        StringBuffer, ThisName->Info.Name);
Al Stone c11325
 
Al Stone c11325
             AslError (ASL_WARNING, ASL_MSG_RESERVED_RETURN_VALUE, Op,
Al Stone c11325
-                MsgBuffer);
Al Stone c11325
+                strp);
Al Stone c11325
+	     if (cnt > 0)
Al Stone c11325
+	        free(strp);
Al Stone c11325
         }
Al Stone c11325
         break;
Al Stone c11325
     }
Al Stone c11325
@@ -698,18 +703,26 @@ TypeErrorExit:
Al Stone c11325
 
Al Stone c11325
     AcpiUtGetExpectedReturnTypes (StringBuffer, ExpectedBtypes);
Al Stone c11325
 
Al Stone c11325
-    if (PackageIndex == ACPI_NOT_PACKAGE_ELEMENT)
Al Stone c11325
-    {
Al Stone c11325
-        sprintf (MsgBuffer, "%4.4s: found %s, %s required",
Al Stone c11325
-            PredefinedName, TypeName, StringBuffer);
Al Stone c11325
-    }
Al Stone c11325
-    else
Al Stone c11325
     {
Al Stone c11325
-        sprintf (MsgBuffer, "%4.4s: found %s at index %u, %s required",
Al Stone c11325
-            PredefinedName, TypeName, PackageIndex, StringBuffer);
Al Stone c11325
+        int cnt;
Al Stone c11325
+	char *strp;
Al Stone c11325
+
Al Stone c11325
+        if (PackageIndex == ACPI_NOT_PACKAGE_ELEMENT)
Al Stone c11325
+        {
Al Stone c11325
+            cnt = asprintf (&strp, "%4.4s: found %s, %s required",
Al Stone c11325
+                PredefinedName, TypeName, StringBuffer);
Al Stone c11325
+        }
Al Stone c11325
+        else
Al Stone c11325
+        {
Al Stone c11325
+            cnt = asprintf (&strp, "%4.4s: found %s at index %u, %s required",
Al Stone c11325
+                PredefinedName, TypeName, PackageIndex, StringBuffer);
Al Stone c11325
+        }
Al Stone c11325
+
Al Stone 23a2a2
+        AslError (ASL_ERROR, ASL_MSG_RESERVED_OPERAND_TYPE, Op, strp);
Al Stone c11325
+	if (cnt > 0)
Al Stone c11325
+	    free(strp);
Al Stone c11325
     }
Al Stone c11325
 
Al Stone c11325
-    AslError (ASL_ERROR, ASL_MSG_RESERVED_OPERAND_TYPE, Op, MsgBuffer);
Al Stone c11325
     return (AE_TYPE);
Al Stone c11325
 }
Al Stone c11325
 
Al Stone c11325
Index: acpica-unix2-20180209/source/compiler/aslwalks.c
Al Stone c11325
===================================================================
Al Stone c11325
--- acpica-unix2-20180209.orig/source/compiler/aslwalks.c
Al Stone c11325
+++ acpica-unix2-20180209/source/compiler/aslwalks.c
Al Stone c11325
@@ -507,15 +507,19 @@ AnOperandTypecheckWalkEnd (
Al Stone c11325
             else if (!CommonBtypes)
Al Stone c11325
             {
Al Stone c11325
                 /* No match -- this is a type mismatch error */
Al Stone c11325
+		int cnt;
Al Stone c11325
+		char *strp;
Al Stone c11325
 
Al Stone c11325
                 AnFormatBtype (StringBuffer, ThisNodeBtype);
Al Stone c11325
                 AnFormatBtype (StringBuffer2, RequiredBtypes);
Al Stone c11325
 
Al Stone c11325
-                sprintf (MsgBuffer, "[%s] found, %s operator requires [%s]",
Al Stone c11325
+                cnt = asprintf (&strp, "[%s] found, %s operator requires [%s]",
Al Stone c11325
                     StringBuffer, OpInfo->Name, StringBuffer2);
Al Stone c11325
 
Al Stone c11325
                 AslError (ASL_ERROR, ASL_MSG_INVALID_TYPE,
Al Stone c11325
-                    ArgOp, MsgBuffer);
Al Stone c11325
+                    ArgOp, strp);
Al Stone c11325
+		if (cnt > 0)
Al Stone c11325
+		    free(strp);
Al Stone c11325
             }
Al Stone c11325
 
Al Stone c11325
         NextArgument: