mirror of
https://github.com/brl/mutter.git
synced 2025-06-14 01:09:30 +00:00
Change all g_memdup() to g_memdup2()
Using g_memdup() is dangerous due to the type of the size argument. See https://gitlab.gnome.org/GNOME/glib/-/issues/2319 and https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1926 for details. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1708>
This commit is contained in:
@ -666,7 +666,7 @@ meta_input_settings_native_set_tablet_aspect_ratio (MetaInputSettings *settings
|
||||
|
||||
task = g_task_new (device, NULL, NULL, NULL);
|
||||
g_task_set_task_data (task,
|
||||
g_memdup (&aspect_ratio, sizeof (double)),
|
||||
g_memdup2 (&aspect_ratio, sizeof (double)),
|
||||
g_free);
|
||||
|
||||
input_settings_native = META_INPUT_SETTINGS_NATIVE (settings);
|
||||
|
@ -273,11 +273,11 @@ meta_kms_crtc_predict_state (MetaKmsCrtc *crtc,
|
||||
clear_gamma_state (crtc);
|
||||
crtc->current_state.gamma.size = gamma->size;
|
||||
crtc->current_state.gamma.red =
|
||||
g_memdup (gamma->red, gamma->size * sizeof (uint16_t));
|
||||
g_memdup2 (gamma->red, gamma->size * sizeof (uint16_t));
|
||||
crtc->current_state.gamma.green =
|
||||
g_memdup (gamma->green, gamma->size * sizeof (uint16_t));
|
||||
g_memdup2 (gamma->green, gamma->size * sizeof (uint16_t));
|
||||
crtc->current_state.gamma.blue =
|
||||
g_memdup (gamma->blue, gamma->size * sizeof (uint16_t));
|
||||
g_memdup2 (gamma->blue, gamma->size * sizeof (uint16_t));
|
||||
|
||||
break;
|
||||
}
|
||||
|
@ -263,7 +263,7 @@ cached_mode_set_new (GList *connectors,
|
||||
cached_mode_set = g_new0 (CachedModeSet, 1);
|
||||
*cached_mode_set = (CachedModeSet) {
|
||||
.connectors = g_list_copy (connectors),
|
||||
.drm_mode = g_memdup (drm_mode, sizeof *drm_mode),
|
||||
.drm_mode = g_memdup2 (drm_mode, sizeof *drm_mode),
|
||||
};
|
||||
|
||||
return cached_mode_set;
|
||||
|
@ -364,9 +364,9 @@ meta_kms_crtc_gamma_new (MetaKmsCrtc *crtc,
|
||||
*gamma = (MetaKmsCrtcGamma) {
|
||||
.crtc = crtc,
|
||||
.size = size,
|
||||
.red = g_memdup (red, size * sizeof (*red)),
|
||||
.green = g_memdup (green, size * sizeof (*green)),
|
||||
.blue = g_memdup (blue, size * sizeof (*blue)),
|
||||
.red = g_memdup2 (red, size * sizeof (*red)),
|
||||
.green = g_memdup2 (green, size * sizeof (*green)),
|
||||
.blue = g_memdup2 (blue, size * sizeof (*blue)),
|
||||
};
|
||||
|
||||
return gamma;
|
||||
|
@ -353,9 +353,9 @@ meta_monitor_manager_kms_get_crtc_gamma (MetaMonitorManager *manager,
|
||||
crtc_state = meta_kms_crtc_get_current_state (kms_crtc);
|
||||
|
||||
*size = crtc_state->gamma.size;
|
||||
*red = g_memdup (crtc_state->gamma.red, *size * sizeof **red);
|
||||
*green = g_memdup (crtc_state->gamma.green, *size * sizeof **green);
|
||||
*blue = g_memdup (crtc_state->gamma.blue, *size * sizeof **blue);
|
||||
*red = g_memdup2 (crtc_state->gamma.red, *size * sizeof **red);
|
||||
*green = g_memdup2 (crtc_state->gamma.green, *size * sizeof **green);
|
||||
*blue = g_memdup2 (crtc_state->gamma.blue, *size * sizeof **blue);
|
||||
}
|
||||
|
||||
static char *
|
||||
|
Reference in New Issue
Block a user