--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/open-src/lib/libXi/25384108.patch Tue Mar 14 07:32:06 2017 -0700
@@ -0,0 +1,63 @@
+--- a/src/XListDev.c.orig Tue Mar 7 01:27:41 2017
++++ b/src/XListDev.c Tue Mar 7 01:42:27 2017
+@@ -74,17 +74,18 @@
+ }
+
+ static size_t
+-SizeClassInfo(xAnyClassPtr *any, size_t len, int num_classes)
++SizeClassInfo(xAnyClassPtr *any, size_t len, int num_classes, size_t *size)
+ {
+- int size = 0;
+ int j;
++ size_t sz = 0;
++
+ for (j = 0; j < num_classes; j++) {
+ switch ((*any)->class) {
+ case KeyClass:
+- size += pad_to_xid(sizeof(XKeyInfo));
++ sz += pad_to_xid(sizeof(XKeyInfo));
+ break;
+ case ButtonClass:
+- size += pad_to_xid(sizeof(XButtonInfo));
++ sz += pad_to_xid(sizeof(XButtonInfo));
+ break;
+ case ValuatorClass:
+ {
+@@ -91,9 +92,9 @@
+ xValuatorInfoPtr v;
+
+ if (len < sizeof(v))
+- return 0;
++ return 1;
+ v = (xValuatorInfoPtr) *any;
+- size += pad_to_xid(sizeof(XValuatorInfo) +
++ sz += pad_to_xid(sizeof(XValuatorInfo) +
+ (v->num_axes * sizeof(XAxisInfo)));
+ break;
+ }
+@@ -101,11 +102,13 @@
+ break;
+ }
+ if ((*any)->length > len)
+- return 0;
++ return 1;
+ *any = (xAnyClassPtr) ((char *)(*any) + (*any)->length);
+ }
+
+- return size;
++ *size = sz;
++
++ return 0;
+ }
+
+ static void
+@@ -220,8 +223,7 @@
+ sav_any = any;
+ end = (char *)list + rlen;
+ for (i = 0; i < *ndevices; i++, list++) {
+- s = SizeClassInfo(&any, end - (char *)any, (int)list->num_classes);
+- if (!s)
++ if(SizeClassInfo(&any, end - (char *)any, (int)list->num_classes, &s))
+ goto out;
+ size += s;
+ }
--- a/open-src/lib/libXi/Makefile Fri Mar 10 11:05:36 2017 -0800
+++ b/open-src/lib/libXi/Makefile Tue Mar 14 07:32:06 2017 -0700
@@ -2,7 +2,7 @@
#
# libXi Makefile
#
-# Copyright (c) 2008, 2016, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2008, 2017, Oracle and/or its affiliates. All rights reserved.
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
@@ -39,6 +39,7 @@
# Patches to apply to source after unpacking, in order
SOURCE_PATCHES = solaris-abi.patch,-p1
SOURCE_PATCHES += CVE-2016-7945+CVE-2016-7946.patch,-p1
+SOURCE_PATCHES += 25384108.patch,-p1
# Need to regen Makefile.in after solaris-abi.patch changes Makefile.am
AUTORECONF=yes