Hi, On Fri, Jan 15, 2016 at 10:19:38AM +0000, Frediano Ziglio wrote: > These function report memory allocation errors. > spice_malloc0 also reset memory after allocation. > > Signed-off-by: Frediano Ziglio <fziglio@xxxxxxxxxx> Acked-by: Victor Toso <victortoso@xxxxxxxxxx> Thanks, > --- > server/red-replay-qxl.c | 24 ++++++++++-------------- > 1 file changed, 10 insertions(+), 14 deletions(-) > > diff --git a/server/red-replay-qxl.c b/server/red-replay-qxl.c > index 8e0b28c..72d06c8 100644 > --- a/server/red-replay-qxl.c > +++ b/server/red-replay-qxl.c > @@ -199,11 +199,7 @@ static replay_t read_binary(SpiceReplay *replay, const char *prefix, size_t *siz > return REPLAY_EOF; > > if (*buf == NULL) { > - *buf = malloc(*size + base_size); > - if (*buf == NULL) { > - spice_error("allocation error for %zu", *size); > - exit(1); > - } > + *buf = spice_malloc(*size + base_size); > } > #if 0 > { > @@ -217,7 +213,7 @@ static replay_t read_binary(SpiceReplay *replay, const char *prefix, size_t *siz > int ret; > > replay_fscanf(replay, "%d:", &zlib_size); > - zlib_buffer = malloc(zlib_size); > + zlib_buffer = spice_malloc(zlib_size); > replay_fread(replay, zlib_buffer, zlib_size); > strm.zalloc = Z_NULL; > strm.zfree = Z_NULL; > @@ -373,7 +369,7 @@ static QXLImage *red_replay_image(SpiceReplay *replay, uint32_t flags) > return NULL; > } > > - qxl = (QXLImage*)malloc(sizeof(QXLImage)); > + qxl = (QXLImage*)spice_malloc0(sizeof(QXLImage)); > replay_fscanf(replay, "descriptor.id %"PRIu64"\n", &qxl->descriptor.id); > replay_fscanf(replay, "descriptor.type %d\n", &temp); qxl->descriptor.type = temp; > replay_fscanf(replay, "descriptor.flags %d\n", &temp); qxl->descriptor.flags = temp; > @@ -394,7 +390,7 @@ static QXLImage *red_replay_image(SpiceReplay *replay, uint32_t flags) > int i, num_ents; > > replay_fscanf(replay, "qp.num_ents %d\n", &num_ents); > - qp = malloc(sizeof(QXLPalette) + num_ents * sizeof(qp->ents[0])); > + qp = spice_malloc(sizeof(QXLPalette) + num_ents * sizeof(qp->ents[0])); > qp->num_ents = num_ents; > qxl->bitmap.palette = QXLPHYSICAL_FROM_PTR(qp); > replay_fscanf(replay, "unique %"PRIu64"\n", &qp->unique); > @@ -784,7 +780,7 @@ static void red_replay_composite_free(SpiceReplay *replay, QXLComposite *qxl, ui > > static QXLDrawable *red_replay_native_drawable(SpiceReplay *replay, uint32_t flags) > { > - QXLDrawable *qxl = malloc(sizeof(QXLDrawable)); // TODO - this is too large usually > + QXLDrawable *qxl = spice_malloc0(sizeof(QXLDrawable)); // TODO - this is too large usually > int i; > int temp; > > @@ -915,7 +911,7 @@ static void red_replay_native_drawable_free(SpiceReplay *replay, QXLDrawable *qx > static QXLCompatDrawable *red_replay_compat_drawable(SpiceReplay *replay, uint32_t flags) > { > int temp; > - QXLCompatDrawable *qxl = malloc(sizeof(QXLCompatDrawable)); // TODO - too large usually > + QXLCompatDrawable *qxl = spice_malloc0(sizeof(QXLCompatDrawable)); // TODO - too large usually > > red_replay_rect_ptr(replay, "bbox", &qxl->bbox); > red_replay_clip_ptr(replay, &qxl->clip); > @@ -990,7 +986,7 @@ static QXLPHYSICAL red_replay_drawable(SpiceReplay *replay, uint32_t flags) > > static QXLUpdateCmd *red_replay_update_cmd(SpiceReplay *replay) > { > - QXLUpdateCmd *qxl = malloc(sizeof(QXLUpdateCmd)); > + QXLUpdateCmd *qxl = spice_malloc0(sizeof(QXLUpdateCmd)); > > replay_fscanf(replay, "update\n"); > red_replay_rect_ptr(replay, "area", &qxl->area); > @@ -1015,7 +1011,7 @@ static QXLSurfaceCmd *red_replay_surface_cmd(SpiceReplay *replay) > size_t size; > size_t read_size; > int temp; > - QXLSurfaceCmd *qxl = calloc(1, sizeof(QXLSurfaceCmd)); > + QXLSurfaceCmd *qxl = spice_malloc0(sizeof(QXLSurfaceCmd)); > > replay_fscanf(replay, "surface_cmd\n"); > replay_fscanf(replay, "surface_id %d\n", &qxl->surface_id); > @@ -1035,7 +1031,7 @@ static QXLSurfaceCmd *red_replay_surface_cmd(SpiceReplay *replay) > spice_printerr("mismatch %zu != %zu", size, read_size); > } > } else { > - qxl->u.surface_create.data = QXLPHYSICAL_FROM_PTR(malloc(size)); > + qxl->u.surface_create.data = QXLPHYSICAL_FROM_PTR(spice_malloc(size)); > } > qxl->surface_id = replay_id_new(replay, qxl->surface_id); > break; > @@ -1215,7 +1211,7 @@ SpiceReplay *spice_replay_new(FILE *file, int nsurfaces) > } > } > > - replay = malloc(sizeof(SpiceReplay)); > + replay = spice_malloc0(sizeof(SpiceReplay)); > > replay->eof = 0; > replay->fd = file; > -- > 2.4.3 > > _______________________________________________ > Spice-devel mailing list > Spice-devel@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/spice-devel _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel