Commit 2af6903b15495c9c472faf4b243be7ba75eeaeb5

Werner Lemberg 2022-07-29T22:42:22

* src/base/ftglyph.c (FT_Get_Glyph): Set `*aglyph` to NULL in case of error.

diff --git a/include/freetype/ftglyph.h b/include/freetype/ftglyph.h
index 6b77bd3..b923546 100644
--- a/include/freetype/ftglyph.h
+++ b/include/freetype/ftglyph.h
@@ -355,7 +355,7 @@ FT_BEGIN_HEADER
    *
    * @output:
    *   aglyph ::
-   *     A handle to the glyph object.
+   *     A handle to the glyph object.  `NULL` in case of error.
    *
    * @return:
    *   FreeType error code.  0~means success.
@@ -385,7 +385,7 @@ FT_BEGIN_HEADER
    *
    * @output:
    *   target ::
-   *     A handle to the target glyph object.  0~in case of error.
+   *     A handle to the target glyph object.  `NULL` in case of error.
    *
    * @return:
    *   FreeType error code.  0~means success.
@@ -671,7 +671,7 @@ FT_BEGIN_HEADER
    *
    * @input:
    *   glyph ::
-   *     A handle to the target glyph object.
+   *     A handle to the target glyph object.  Can be `NULL`.
    */
   FT_EXPORT( void )
   FT_Done_Glyph( FT_Glyph  glyph );
diff --git a/src/base/ftglyph.c b/src/base/ftglyph.c
index 571dca1..5873438 100644
--- a/src/base/ftglyph.c
+++ b/src/base/ftglyph.c
@@ -682,7 +682,10 @@
   Exit2:
     /* if an error occurred, destroy the glyph */
     if ( error )
+    {
       FT_Done_Glyph( glyph );
+      *aglyph = NULL;
+    }
     else
       *aglyph = glyph;