1
0
forked from pool/virtualbox
virtualbox/fixes_for_leap15.3.patch
Larry Rainey 030c30350e Accepting request 1060705 from home:larryr:branches:Virtualization
- VirtualBox 7.0.6 (released January 17 2023)
This is a maintenance release. The following items were fixed and/or added: [1]
- VMM: Fixed guru running the FreeBSD loader on older Intel CPUs without unrestricted guest support (bug #21332)
- GUI: Fixed virtual machines grouping when VM was created or modified in command line (bugs #11500, #20933)
- GUI: Introduced generic changes in settings dialogs
- VirtioNet: Fixed broken network after loading saved state (bug #21172)
- Storage: Added support for increasing the size of the following VMDK image variants: monolithicFlat, monolithicSparse, twoGbMaxExtentSparse, twoGbMaxExtentFlat
- VBoxManage: Added missing --directory switch for guestcontrol mktemp command
- Mouse Integration: Guest was provided with extended host mouse state (bug #21139)
- DnD: Introduced generic improvements
- Guest Control: Fixed handling creation mode for temporary directories (bug #21394)
- Linux Host and Guest: Added initial support for building UEK7 kernel on Oracle Linux 8
- Linux Host and Guest: Added initial support for RHEL 9.1 kernel
- Linux Guest Additions: Added initial support for kernel 6.2 for vboxvideo
- Audio: The "--audio" option in VBoxManage is now marked as deprecated; please use "--audio-driver" and "--audio-enabled" instead. This will allow more flexibility when changing the driver and/or controlling the audio functionality 
Additionally, it fixes 6 CVE's: [2]
CVE-2023-21886 	Oracle VM VirtualBox 	Core 	Multiple 	Yes 	8.1 	Network 	High 	None 	None 	Un-
changed 	High 	High 	High 	Prior to 6.1.42, prior to 7.0.6 	 
CVE-2023-21898 	Oracle VM VirtualBox 	Core 	None 	No 	5.5 	Local 	Low 	Low 	None 	Un-
changed 	None 	None 	High 	Prior to 6.1.42, prior to 7.0.6 	See Note 1
CVE-2023-21899 	Oracle VM VirtualBox 	Core 	None 	No 	5.5 	Local 	Low 	Low 	None 	Un-
changed 	None 	None 	High 	Prior to 6.1.42, prior to 7.0.6 	See Note 1
CVE-2023-21884 	Oracle VM VirtualBox 	Core 	None 	No 	4.4 	Local 	Low 	High 	None 	Un-
changed 	None 	None 	High 	Prior to 6.1.42, prior to 7.0.6 	 
CVE-2023-21885 	Oracle VM VirtualBox 	Core 	None 	No 	3.8 	Local 	Low 	Low 	None 	Changed 	Low 	None 	None 	Prior to 6.1.42, prior to 7.0.6 	See Note 2
CVE-2023-21889 	Oracle VM VirtualBox 	Core 	None 	No 	3.8 	Local 	Low 	Low 	None 	Changed 	Low 	None 	None 	Prior to 6.1.42, prior to 7.0.6 	 
								
Note 1: Applies to VirtualBox VMs running Windows 7 and later.
Note 2: Applies to Windows only.
Links:

OBS-URL: https://build.opensuse.org/request/show/1060705
OBS-URL: https://build.opensuse.org/package/show/Virtualization/virtualbox?expand=0&rev=673
2023-01-24 21:49:25 +00:00

151 lines
6.3 KiB
Diff

Index: VirtualBox-7.0.6/src/VBox/Runtime/r0drv/linux/the-linux-kernel.h
===================================================================
--- VirtualBox-7.0.6.orig/src/VBox/Runtime/r0drv/linux/the-linux-kernel.h
+++ VirtualBox-7.0.6/src/VBox/Runtime/r0drv/linux/the-linux-kernel.h
@@ -147,9 +147,9 @@
#include <linux/interrupt.h>
#include <linux/completion.h>
#include <linux/compiler.h>
-#if RTLNX_VER_MIN(5,9,0) || RTLNX_SUSE_MAJ_PREREQ(15,3) /* linux/fs.h defined HAVE_UNLOCKED_IOCTL from 2.6.11 up to 5.9 (also 5.3.18-56 in SLES15-SP3), when it became an implicit assumption. */
+//#if RTLNX_VER_MIN(5,9,0) || RTLNX_SUSE_MAJ_PREREQ(15,3) /* linux/fs.h defined HAVE_UNLOCKED_IOCTL from 2.6.11 up to 5.9 (also 5.3.18-56 in SLES15-SP3), when it became an implicit assumption. */
# define HAVE_UNLOCKED_IOCTL 1 /* We use this in a couple of places, so for now just define it for 5.9+ too. */
-#endif
+//#endif
#if !defined(HAVE_UNLOCKED_IOCTL) && RTLNX_VER_MAX(2,6,38)
# include <linux/smp_lock.h>
#endif
Index: VirtualBox-7.0.6/src/libs/xpcom18a4/python/src/PyXPCOM.h
===================================================================
--- VirtualBox-7.0.6.orig/src/libs/xpcom18a4/python/src/PyXPCOM.h
+++ VirtualBox-7.0.6/src/libs/xpcom18a4/python/src/PyXPCOM.h
@@ -191,7 +191,7 @@ extern "C" PyAPI_FUNC(const char *) PyUn
# endif
/* PyUnicode_AsUTF8 is just PyUnicode_AsUTF8AndSize without returning a size. */
-# define PyUnicode_AsUTF8(o) PyUnicode_AsUTF8AndSize(o, NULL)
+// # define PyUnicode_AsUTF8(o) (const char *)PyUnicode_AsUTF8AndSize(o, NULL)
DECLINLINE(int) PyRun_SimpleString(const char *pszCode)
{
Index: VirtualBox-7.0.6/src/libs/xpcom18a4/python/src/ErrorUtils.cpp
===================================================================
--- VirtualBox-7.0.6.orig/src/libs/xpcom18a4/python/src/ErrorUtils.cpp
+++ VirtualBox-7.0.6/src/libs/xpcom18a4/python/src/ErrorUtils.cpp
@@ -121,7 +121,7 @@ void DoLogMessage(const char *methodName
#if PY_MAJOR_VERSION <= 2
c += PyString_AsString(repr);
#else
- c += PyUnicode_AsUTF8(repr);
+ c += PyUnicode_AsUTF8AndSize(repr, NULL);
#endif
Py_DECREF(repr);
}
@@ -203,7 +203,7 @@ PRBool PyXPCOM_FormatGivenException(nsCS
#if PY_MAJOR_VERSION <= 2
streamout += PyString_AsString(temp);
#else
- streamout += PyUnicode_AsUTF8(temp);
+ streamout += PyUnicode_AsUTF8AndSize(temp, NULL);
#endif
Py_DECREF(temp);
} else
@@ -215,7 +215,7 @@ PRBool PyXPCOM_FormatGivenException(nsCS
#if PY_MAJOR_VERSION <= 2
streamout += PyString_AsString(temp);
#else
- streamout += PyUnicode_AsUTF8(temp);
+ streamout += PyUnicode_AsUTF8AndSize(temp, NULL);
#endif
Py_DECREF(temp);
} else
@@ -440,10 +440,11 @@ char *PyTraceback_AsString(PyObject *exc
#if PY_MAJOR_VERSION <= 2
char *tempResult = (char *)PyString_AsString(obResult);
#elif PY_MINOR_VERSION <= 6
- char *tempResult = (char *)PyUnicode_AsUTF8(obResult);
+ char *tempResult = (char *)PyBytes_AsString(obResult);
+#elif PY_MINOR_VERSION <= 6
+ const char *tempResult = PyUnicode_AsUTF8AndSize(obResult, NULL);
#else
- /* PyUnicode_AsUTF8() is const char * as of Python 3.7, char * earlier. */
- const char *tempResult = (const char *)PyUnicode_AsUTF8(obResult);
+ const char *tempResult = (const char *)PyUnicode_AsUTF8AndSize(obResult, NULL);
#endif
result = (char *)PyMem_Malloc(strlen(tempResult)+1);
if (result==NULL)
Index: VirtualBox-7.0.6/src/libs/xpcom18a4/python/src/PyGBase.cpp
===================================================================
--- VirtualBox-7.0.6.orig/src/libs/xpcom18a4/python/src/PyGBase.cpp
+++ VirtualBox-7.0.6/src/libs/xpcom18a4/python/src/PyGBase.cpp
@@ -117,7 +117,7 @@ PyG_Base::PyG_Base(PyObject *instance, c
#if PY_MAJOR_VERSION <= 2
szRepr = PyString_AsString(r);
#else
- szRepr = PyUnicode_AsUTF8(r);
+ szRepr = PyUnicode_AsUTF8AndSize(r, NULL);
#endif
if (szRepr==NULL) szRepr = "";
int reprOffset = *szRepr=='<' ? 1 : 0;
Index: VirtualBox-7.0.6/src/libs/xpcom18a4/python/src/PyIID.cpp
===================================================================
--- VirtualBox-7.0.6.orig/src/libs/xpcom18a4/python/src/PyIID.cpp
+++ VirtualBox-7.0.6/src/libs/xpcom18a4/python/src/PyIID.cpp
@@ -137,7 +137,7 @@ Py_nsIID::IIDFromPyObject(PyObject *ob,
ok = iid.Parse(PyString_AsString(ob));
#else
if (PyUnicode_Check(ob)) {
- ok = iid.Parse(PyUnicode_AsUTF8(ob));
+ ok = iid.Parse(PyUnicode_AsUTF8AndSize(ob, NULL));
#endif
if (!ok) {
PyXPCOM_BuildPyException(NS_ERROR_ILLEGAL_VALUE);
Index: VirtualBox-7.0.6/src/libs/xpcom18a4/python/src/VariantUtils.cpp
===================================================================
--- VirtualBox-7.0.6.orig/src/libs/xpcom18a4/python/src/VariantUtils.cpp
+++ VirtualBox-7.0.6/src/libs/xpcom18a4/python/src/VariantUtils.cpp
@@ -141,7 +141,7 @@ PyObject *PyObject_FromNSString( const n
#if PY_MAJOR_VERSION <= 2
char* dest = (char *)PyString_AS_STRING(ret);
#else
- char* dest = (char *)PyUnicode_AsUTF8(ret);
+ char* dest = (char *)PyUnicode_AsUTF8AndSize(ret, NULL);
#endif
copy_string(s.BeginReading(fromBegin), s.EndReading(fromEnd), dest);
}
@@ -393,7 +393,7 @@ PRBool FillSingleArray(void *array_ptr,
#if PY_MAJOR_VERSION <= 2
sequence_ob = PyObject_Str(sequence_ob);
#else
- sequence_ob = PyUnicode_AsUTF8String(sequence_ob);
+ sequence_ob = (PyObject *)PyUnicode_AsUTF8AndSize(sequence_ob, NULL);
#endif
} else
release_seq = PR_FALSE;
@@ -402,7 +402,7 @@ PRBool FillSingleArray(void *array_ptr,
#if PY_MAJOR_VERSION <= 2
memcpy(pthis, PyString_AS_STRING(sequence_ob), sequence_size);
#else
- memcpy(pthis, PyUnicode_AsUTF8(sequence_ob), sequence_size);
+ memcpy(pthis, PyUnicode_AsUTF8AndSize(sequence_ob, NULL), sequence_size);
#endif
if (release_seq)
{
@@ -477,7 +477,7 @@ PRBool FillSingleArray(void *array_ptr,
PyErr_SetString(PyExc_TypeError, "This parameter must be a unicode object");
BREAK_FALSE;
}
- FILL_SIMPLE_POINTER( char, *PyUnicode_AsUTF8(val) );
+ FILL_SIMPLE_POINTER( char, *PyUnicode_AsUTF8AndSize(val, NULL) );
#endif
break;
@@ -549,7 +549,7 @@ PRBool FillSingleArray(void *array_ptr,
PyErr_SetString(PyExc_TypeError, "This parameter must be a unicode object");
BREAK_FALSE;
}
- if ((val_use = PyUnicode_AsUTF8String(val))==NULL)
+ if ((val_use = (PyObject *)PyUnicode_AsUTF8AndSize(val, NULL))==NULL)
BREAK_FALSE;
const char *sz = PyBytes_AS_STRING(val_use);