Fix few memory errors

This commit is contained in:
Vladimir 'phcoder' Serbinenko 2010-03-16 23:03:08 +01:00
parent 7c464a1ec5
commit eaa1f9a64b
3 changed files with 13 additions and 8 deletions

View file

@ -63,10 +63,10 @@ grub_font_draw_string (const char *str, grub_font_t font,
if (!glyph) if (!glyph)
return grub_errno; return grub_errno;
err = grub_font_draw_glyph (glyph, color, x, baseline_y); err = grub_font_draw_glyph (glyph, color, x, baseline_y);
x += glyph->device_width;
grub_free (glyph); grub_free (glyph);
if (err) if (err)
return err; return err;
x += glyph->device_width;
} }
grub_free (visual); grub_free (visual);

View file

@ -130,6 +130,8 @@ grub_unicode_glyph_dup (const struct grub_unicode_glyph *in)
if (!out) if (!out)
return NULL; return NULL;
grub_memcpy (out, in, sizeof (*in)); grub_memcpy (out, in, sizeof (*in));
if (in->combining)
{
out->combining = grub_malloc (in->ncomb * sizeof (*in)); out->combining = grub_malloc (in->ncomb * sizeof (*in));
if (!out->combining) if (!out->combining)
{ {
@ -137,6 +139,7 @@ grub_unicode_glyph_dup (const struct grub_unicode_glyph *in)
return NULL; return NULL;
} }
grub_memcpy (out->combining, in->combining, in->ncomb * sizeof (*in)); grub_memcpy (out->combining, in->combining, in->ncomb * sizeof (*in));
}
return out; return out;
} }

View file

@ -282,6 +282,7 @@ grub_utf8_to_ucs4_alloc (const char *msg, grub_uint32_t **unicode_msg,
msg_len = grub_utf8_to_ucs4 (*unicode_msg, msg_len, msg_len = grub_utf8_to_ucs4 (*unicode_msg, msg_len,
(grub_uint8_t *) msg, -1, 0); (grub_uint8_t *) msg, -1, 0);
if (last_position)
*last_position = *unicode_msg + msg_len; *last_position = *unicode_msg + msg_len;
return msg_len; return msg_len;
@ -536,6 +537,7 @@ grub_unicode_aglomerate_comb (const grub_uint32_t *in, grub_size_t inlen,
grub_errno = GRUB_ERR_NONE; grub_errno = GRUB_ERR_NONE;
continue; continue;
} }
out->combining = n;
for (j = last_comb_pointer; j < out->ncomb; j++) for (j = last_comb_pointer; j < out->ncomb; j++)
if (out->combining[j].type > comb_type) if (out->combining[j].type > comb_type)