mirror of
https://git.freebsd.org/ports.git
synced 2025-07-18 01:39:16 -04:00
Update to 1.0.8
Obtained from: xorg development repo
This commit is contained in:
parent
0bc922f556
commit
98ef378faf
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=320896
3 changed files with 3 additions and 170 deletions
|
@ -2,8 +2,7 @@
|
||||||
# $FreeBSD$
|
# $FreeBSD$
|
||||||
|
|
||||||
PORTNAME= libXvMC
|
PORTNAME= libXvMC
|
||||||
PORTVERSION= 1.0.7
|
PORTVERSION= 1.0.8
|
||||||
PORTREVISION= 1
|
|
||||||
CATEGORIES= x11
|
CATEGORIES= x11
|
||||||
|
|
||||||
MAINTAINER= x11@FreeBSD.org
|
MAINTAINER= x11@FreeBSD.org
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
SHA256 (xorg/lib/libXvMC-1.0.7.tar.bz2) = 28f085fc8518a3dadfe355360705d50153051f09898093e69af806c0b437cea3
|
SHA256 (xorg/lib/libXvMC-1.0.8.tar.bz2) = 5e1a401efa433f959d41e17932b8c218c56b931348f494b8fa4656d7d798b204
|
||||||
SIZE (xorg/lib/libXvMC-1.0.7.tar.bz2) = 299745
|
SIZE (xorg/lib/libXvMC-1.0.8.tar.bz2) = 305234
|
||||||
|
|
|
@ -1,166 +0,0 @@
|
||||||
--- src/XvMC.c.orig 2012-03-08 05:31:17.000000000 +0000
|
|
||||||
+++ src/XvMC.c 2013-06-03 19:17:33.000000000 +0000
|
|
||||||
@@ -16,6 +16,7 @@
|
|
||||||
#include <sys/time.h>
|
|
||||||
#include <X11/extensions/Xext.h>
|
|
||||||
#include <X11/extensions/extutil.h>
|
|
||||||
+#include <limits.h>
|
|
||||||
|
|
||||||
static XExtensionInfo _xvmc_info_data;
|
|
||||||
static XExtensionInfo *xvmc_info = &_xvmc_info_data;
|
|
||||||
@@ -111,8 +112,8 @@ XvMCSurfaceInfo * XvMCListSurfaceTypes(D
|
|
||||||
}
|
|
||||||
|
|
||||||
if(rep.num > 0) {
|
|
||||||
- surface_info =
|
|
||||||
- (XvMCSurfaceInfo*)Xmalloc(rep.num * sizeof(XvMCSurfaceInfo));
|
|
||||||
+ if (rep.num < (INT_MAX / sizeof(XvMCSurfaceInfo)))
|
|
||||||
+ surface_info = Xmalloc(rep.num * sizeof(XvMCSurfaceInfo));
|
|
||||||
|
|
||||||
if(surface_info) {
|
|
||||||
xvmcSurfaceInfo sinfo;
|
|
||||||
@@ -134,7 +135,7 @@ XvMCSurfaceInfo * XvMCListSurfaceTypes(D
|
|
||||||
surface_info[i].flags = sinfo.flags;
|
|
||||||
}
|
|
||||||
} else
|
|
||||||
- _XEatData(dpy, rep.length << 2);
|
|
||||||
+ _XEatDataWords(dpy, rep.length);
|
|
||||||
}
|
|
||||||
|
|
||||||
UnlockDisplay (dpy);
|
|
||||||
@@ -172,8 +173,8 @@ XvImageFormatValues * XvMCListSubpicture
|
|
||||||
}
|
|
||||||
|
|
||||||
if(rep.num > 0) {
|
|
||||||
- ret =
|
|
||||||
- (XvImageFormatValues*)Xmalloc(rep.num * sizeof(XvImageFormatValues));
|
|
||||||
+ if (rep.num < (INT_MAX / sizeof(XvImageFormatValues)))
|
|
||||||
+ ret = Xmalloc(rep.num * sizeof(XvImageFormatValues));
|
|
||||||
|
|
||||||
if(ret) {
|
|
||||||
xvImageFormatInfo Info;
|
|
||||||
@@ -207,7 +208,7 @@ XvImageFormatValues * XvMCListSubpicture
|
|
||||||
ret[i].scanline_order = Info.scanline_order;
|
|
||||||
}
|
|
||||||
} else
|
|
||||||
- _XEatData(dpy, rep.length << 2);
|
|
||||||
+ _XEatDataWords(dpy, rep.length);
|
|
||||||
}
|
|
||||||
|
|
||||||
UnlockDisplay (dpy);
|
|
||||||
@@ -273,12 +274,13 @@ Status _xvmc_create_context (
|
|
||||||
context->flags = rep.flags_return;
|
|
||||||
|
|
||||||
if(rep.length) {
|
|
||||||
- *priv_data = Xmalloc(rep.length << 2);
|
|
||||||
+ if (rep.length < (INT_MAX >> 2))
|
|
||||||
+ *priv_data = Xmalloc(rep.length << 2);
|
|
||||||
if(*priv_data) {
|
|
||||||
_XRead(dpy, (char*)(*priv_data), rep.length << 2);
|
|
||||||
*priv_count = rep.length;
|
|
||||||
} else
|
|
||||||
- _XEatData(dpy, rep.length << 2);
|
|
||||||
+ _XEatDataWords(dpy, rep.length);
|
|
||||||
}
|
|
||||||
|
|
||||||
UnlockDisplay (dpy);
|
|
||||||
@@ -354,12 +356,13 @@ Status _xvmc_create_surface (
|
|
||||||
}
|
|
||||||
|
|
||||||
if(rep.length) {
|
|
||||||
- *priv_data = Xmalloc(rep.length << 2);
|
|
||||||
+ if (rep.length < (INT_MAX >> 2))
|
|
||||||
+ *priv_data = Xmalloc(rep.length << 2);
|
|
||||||
if(*priv_data) {
|
|
||||||
_XRead(dpy, (char*)(*priv_data), rep.length << 2);
|
|
||||||
*priv_count = rep.length;
|
|
||||||
} else
|
|
||||||
- _XEatData(dpy, rep.length << 2);
|
|
||||||
+ _XEatDataWords(dpy, rep.length);
|
|
||||||
}
|
|
||||||
|
|
||||||
UnlockDisplay (dpy);
|
|
||||||
@@ -444,12 +447,13 @@ Status _xvmc_create_subpicture (
|
|
||||||
subpicture->component_order[3] = rep.component_order[3];
|
|
||||||
|
|
||||||
if(rep.length) {
|
|
||||||
- *priv_data = Xmalloc(rep.length << 2);
|
|
||||||
+ if (rep.length < (INT_MAX >> 2))
|
|
||||||
+ *priv_data = Xmalloc(rep.length << 2);
|
|
||||||
if(*priv_data) {
|
|
||||||
_XRead(dpy, (char*)(*priv_data), rep.length << 2);
|
|
||||||
*priv_count = rep.length;
|
|
||||||
} else
|
|
||||||
- _XEatData(dpy, rep.length << 2);
|
|
||||||
+ _XEatDataWords(dpy, rep.length);
|
|
||||||
}
|
|
||||||
|
|
||||||
UnlockDisplay (dpy);
|
|
||||||
@@ -484,7 +488,6 @@ Status XvMCGetDRInfo(Display *dpy, XvPor
|
|
||||||
XExtDisplayInfo *info = xvmc_find_display(dpy);
|
|
||||||
xvmcGetDRInfoReply rep;
|
|
||||||
xvmcGetDRInfoReq *req;
|
|
||||||
- char *tmpBuf = NULL;
|
|
||||||
CARD32 magic;
|
|
||||||
|
|
||||||
#ifdef HAVE_SHMAT
|
|
||||||
@@ -495,6 +498,9 @@ Status XvMCGetDRInfo(Display *dpy, XvPor
|
|
||||||
here.tz_dsttime = 0;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+ *name = NULL;
|
|
||||||
+ *busID = NULL;
|
|
||||||
+
|
|
||||||
XvMCCheckExtension (dpy, info, BadImplementation);
|
|
||||||
|
|
||||||
LockDisplay (dpy);
|
|
||||||
@@ -553,33 +559,33 @@ Status XvMCGetDRInfo(Display *dpy, XvPor
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (rep.length > 0) {
|
|
||||||
+ unsigned long realSize = 0;
|
|
||||||
+ char *tmpBuf = NULL;
|
|
||||||
|
|
||||||
- int realSize = rep.length << 2;
|
|
||||||
-
|
|
||||||
- tmpBuf = (char *) Xmalloc(realSize);
|
|
||||||
- if (tmpBuf) {
|
|
||||||
- *name = (char *) Xmalloc(rep.nameLen);
|
|
||||||
- if (*name) {
|
|
||||||
- *busID = (char *) Xmalloc(rep.busIDLen);
|
|
||||||
- if (! *busID) {
|
|
||||||
- XFree(*name);
|
|
||||||
- XFree(tmpBuf);
|
|
||||||
- }
|
|
||||||
- } else {
|
|
||||||
- XFree(tmpBuf);
|
|
||||||
+ if (rep.length < (INT_MAX >> 2)) {
|
|
||||||
+ realSize = rep.length << 2;
|
|
||||||
+ if (realSize >= (rep.nameLen + rep.busIDLen)) {
|
|
||||||
+ tmpBuf = Xmalloc(realSize);
|
|
||||||
+ *name = Xmalloc(rep.nameLen);
|
|
||||||
+ *busID = Xmalloc(rep.busIDLen);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (*name && *busID && tmpBuf) {
|
|
||||||
-
|
|
||||||
_XRead(dpy, tmpBuf, realSize);
|
|
||||||
strncpy(*name,tmpBuf,rep.nameLen);
|
|
||||||
+ (*name)[rep.nameLen - 1] = '\0';
|
|
||||||
strncpy(*busID,tmpBuf+rep.nameLen,rep.busIDLen);
|
|
||||||
+ (*busID)[rep.busIDLen - 1] = '\0';
|
|
||||||
XFree(tmpBuf);
|
|
||||||
-
|
|
||||||
} else {
|
|
||||||
+ XFree(*name);
|
|
||||||
+ *name = NULL;
|
|
||||||
+ XFree(*busID);
|
|
||||||
+ *busID = NULL;
|
|
||||||
+ XFree(tmpBuf);
|
|
||||||
|
|
||||||
- _XEatData(dpy, realSize);
|
|
||||||
+ _XEatDataWords(dpy, rep.length);
|
|
||||||
UnlockDisplay (dpy);
|
|
||||||
SyncHandle ();
|
|
||||||
return -1;
|
|
Loading…
Add table
Reference in a new issue