Reuse png_infop for png_read_end() in avifPNGRead()

Otherwise there can be a memory leak.
diff --git a/apps/shared/avifpng.c b/apps/shared/avifpng.c
index 0e9ed2c..873cb39 100644
--- a/apps/shared/avifpng.c
+++ b/apps/shared/avifpng.c
@@ -214,7 +214,6 @@
     volatile avifBool readResult = AVIF_FALSE;
     png_structp png = NULL;
     png_infop info = NULL;
-    png_infop infoEnd = NULL;
     png_bytep * volatile rowPointers = NULL;
 
     avifRGBImage rgb;
@@ -347,13 +346,8 @@
     }
     // Read Exif or XMP metadata at the end of the file if there was none at the beginning.
     if (!ignoreExif || !ignoreXMP) {
-        infoEnd = png_create_info_struct(png);
-        if (!infoEnd) {
-            fprintf(stderr, "Cannot init libpng (infoEnd): %s\n", inputFilename);
-            goto cleanup;
-        }
-        png_read_end(png, infoEnd);
-        if (!avifExtractExifAndXMP(png, infoEnd, &ignoreExif, &ignoreXMP, avif)) {
+        png_read_end(png, info);
+        if (!avifExtractExifAndXMP(png, info, &ignoreExif, &ignoreXMP, avif)) {
             goto cleanup;
         }
     }
@@ -365,7 +359,6 @@
     }
     if (png) {
         png_destroy_read_struct(&png, &info, NULL);
-        png_destroy_read_struct(&png, &infoEnd, NULL);
     }
     if (rowPointers) {
         free(rowPointers);