summaryrefslogtreecommitdiff
path: root/src/cairo-ps-surface.c
diff options
context:
space:
mode:
authorAdrian Johnson <ajohnson@redneon.com>2023-01-03 19:03:50 +0000
committerAdrian Johnson <ajohnson@redneon.com>2023-01-03 19:03:50 +0000
commit13a0474641232cccb15d24fa31d8c2557731665b (patch)
treeddbbf5e585470ca309445daa491803219793bcde /src/cairo-ps-surface.c
parent4e51d1536f935a788fe19cf3889499df69834827 (diff)
parent3d102f25c924936d660fb771b695f753debf8d44 (diff)
downloadcairo-13a0474641232cccb15d24fa31d8c2557731665b.tar.gz
Merge branch 'mingw-fixes' into 'master'
Fix mingw build failure when SVG fonts enabled See merge request cairo/cairo!389
Diffstat (limited to 'src/cairo-ps-surface.c')
-rw-r--r--src/cairo-ps-surface.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/cairo-ps-surface.c b/src/cairo-ps-surface.c
index ad7c8fb1d..8999f45d5 100644
--- a/src/cairo-ps-surface.c
+++ b/src/cairo-ps-surface.c
@@ -3061,9 +3061,10 @@ _cairo_ps_surface_emit_ccitt_image (cairo_ps_surface_t *surface,
return CAIRO_INT_STATUS_UNSUPPORTED;
/* ensure params_string is null terminated */
- ccitt_params_string = malloc (ccitt_params_data_len + 1);
- memcpy (ccitt_params_string, ccitt_params_data, ccitt_params_data_len);
- ccitt_params_string[ccitt_params_data_len] = 0;
+ ccitt_params_string = _cairo_strndup ((const char *)ccitt_params_data, ccitt_params_data_len);
+ if (unlikely (ccitt_params_string == NULL))
+ return _cairo_surface_set_error (&surface->base, CAIRO_STATUS_NO_MEMORY);
+
status = _cairo_tag_parse_ccitt_params (ccitt_params_string, &ccitt_params);
if (unlikely(status))
return status;
@@ -3246,9 +3247,10 @@ _cairo_ps_surface_emit_eps (cairo_ps_surface_t *surface,
return CAIRO_INT_STATUS_UNSUPPORTED;
/* ensure params_string is null terminated */
- params_string = malloc (eps_params_string_len + 1);
- memcpy (params_string, eps_params_string, eps_params_string_len);
- params_string[eps_params_string_len] = 0;
+ params_string = _cairo_strndup ((const char *)eps_params_string, eps_params_string_len);
+ if (unlikely (params_string == NULL))
+ return _cairo_surface_set_error (&surface->base, CAIRO_STATUS_NO_MEMORY);
+
status = _cairo_tag_parse_eps_params (params_string, &eps_params);
if (unlikely(status))
return status;