Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12-SP4:GA
ghostscript.34522
CVE-2024-29510.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File CVE-2024-29510.patch of Package ghostscript.34522
--- devices/gdevupd.c.orig 2020-03-19 09:21:42.000000000 +0100 +++ devices/gdevupd.c 2024-06-28 13:18:20.944004414 +0200 @@ -1880,6 +1880,16 @@ out on this copies. if(!upd_strings[i]) continue; UPD_PARAM_READ(param_read_string,upd_strings[i],value,udev->memory); if(0 == code) { + if (gs_is_path_control_active(udev->memory)) { + if (strings[i].size != value.size) + error = gs_error_invalidaccess; + else { + if (strings[i].data && memcmp(strings[i].data, value.data, strings[i].size) != 0) + error = gs_error_invalidaccess; + } + if (error < 0) + goto exit; + } if(0 <= error) error |= UPD_PUT_STRINGS; UPD_MM_DEL_PARAM(udev->memory, strings[i]); if(!value.size) { @@ -1897,6 +1907,26 @@ out on this copies. if(!upd_string_a[i]) continue; UPD_PARAM_READ(param_read_string_array,upd_string_a[i],value,udev->memory); if(0 == code) { + if (gs_is_path_control_active(udev->memory)) { + if (string_a[i].size != value.size) + error = gs_error_invalidaccess; + else { + int loop; + for (loop = 0;loop < string_a[i].size;loop++) { + gs_param_string *tmp1 = (gs_param_string *)&(string_a[i].data[loop]); + gs_param_string *tmp2 = (gs_param_string *)&value.data[loop]; + + if (tmp1->size != tmp2->size) + error = gs_error_invalidaccess; + else { + if (tmp1->data && memcmp(tmp1->data, tmp2->data, tmp1->size) != 0) + error = gs_error_invalidaccess; + } + } + } + if (error < 0) + goto exit; + } if(0 <= error) error |= UPD_PUT_STRING_A; UPD_MM_DEL_APARAM(udev->memory, string_a[i]); if(!value.size) { @@ -2091,6 +2121,7 @@ transferred into the device-structure. I if(0 > code) error = code; } +exit: if(0 < error) { /* Actually something loaded without error */ if(!(upd = udev->upd)) {
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor