+++ /dev/null
-diff -urN cairo-0.9.2.orig/src/cairo-cache.c cairo-0.9.2/src/cairo-cache.c
---- cairo-0.9.2.orig/src/cairo-cache.c 2005-08-17 18:28:20.765530192 +0200
-+++ cairo-0.9.2/src/cairo-cache.c 2005-08-17 18:29:26.158588936 +0200
-@@ -512,7 +512,7 @@
- {
- /* This is the djb2 hash. */
- unsigned long hash = 5381;
-- while (*c)
-+ while (c && *c)
- hash = ((hash << 5) + hash) + *c++;
- return hash;
- }
-diff -urN cairo-0.9.2.orig/src/cairo-ft-font.c cairo-0.9.2/src/cairo-ft-font.c
---- cairo-0.9.2.orig/src/cairo-ft-font.c 2005-08-17 18:28:20.816522440 +0200
-+++ cairo-0.9.2/src/cairo-ft-font.c 2005-08-17 18:33:08.097849040 +0200
-@@ -248,8 +248,8 @@
-
- static void
- _cairo_ft_unscaled_font_init_key (cairo_ft_unscaled_font_t *key,
-- char *filename,
-- int id)
-+ char *filename,
-+ int id)
- {
- unsigned long hash;
-
-@@ -290,22 +290,25 @@
- int id,
- FT_Face face)
- {
-- char *filename_copy = NULL;
--
-- if (filename) {
-- filename_copy = strdup (filename);
-- if (filename_copy == NULL)
-- return CAIRO_STATUS_NO_MEMORY;
-- }
--
-- _cairo_ft_unscaled_font_init_key (unscaled, filename_copy, id);
-+ _cairo_unscaled_font_init (&unscaled->base,
-+ &cairo_ft_unscaled_font_backend);
-
- if (face) {
-- unscaled->from_face = 1;
-+ unscaled->from_face = TRUE;
- unscaled->face = face;
-+ unscaled->filename = NULL;
-+ unscaled->id = 0;
- } else {
-- unscaled->from_face = 0;
-+ char *filename_copy;
-+
-+ unscaled->from_face = FALSE;
- unscaled->face = NULL;
-+
-+ filename_copy = strdup (filename);
-+ if (filename_copy == NULL)
-+ return CAIRO_STATUS_NO_MEMORY;
-+
-+ _cairo_ft_unscaled_font_init_key (unscaled, filename_copy, id);
- }
-
- unscaled->have_scale = 0;
-@@ -313,9 +316,6 @@
-
- unscaled->faces = NULL;
-
-- _cairo_unscaled_font_init (&unscaled->base,
-- &cairo_ft_unscaled_font_backend);
--
- return CAIRO_STATUS_SUCCESS;
- }
-