$OpenBSD: patch-src_exif_c,v 1.1 2015/02/08 14:20:39 dcoppa Exp $

commit 89256a02f51edc44b556f759998eadfd8cf01b17
Author: Daniel Friesel <derf@finalrewind.org>
Date:   Fri Dec 5 18:48:36 2014 +0100

exif.c: do sort-of-bounds-check before accessing the exif array (closes #179)

--- src/exif.c.orig	Thu May 15 16:43:07 2014
+++ src/exif.c	Sun Feb  8 08:14:04 2015
@@ -259,7 +259,7 @@ void exif_get_info(ExifData * ed, char *buffer, unsign
   else
   {
     /* show normal exif tags. list must be defined in exif_cfg.h  */
-    while ( (Exif_tag_list[i].ifd != EXIF_IFD_COUNT) && (i < USHRT_MAX) )
+    while ( (i < USHRT_MAX) && (Exif_tag_list[i].ifd != EXIF_IFD_COUNT) )
     {
       exif_get_tag(ed, Exif_tag_list[i].ifd, Exif_tag_list[i].tag, buffer + strlen(buffer), maxsize - strlen(buffer));
       i++; 
@@ -281,7 +281,7 @@ void exif_get_info(ExifData * ed, char *buffer, unsign
         {
           /* show nikon makernote exif tags. list must be defined in exif_cfg.h  */
           i=0;
-          while ( (Exif_makernote_nikon_tag_list[i] != EXIF_NIKON_MAKERNOTE_END) && (i < USHRT_MAX) )
+          while ( (i < USHRT_MAX) && (Exif_makernote_nikon_tag_list[i] != EXIF_NIKON_MAKERNOTE_END) )
           {
             exn_get_mnote_nikon_tags(ed, Exif_makernote_nikon_tag_list[i], 
                                      buffer + strlen(buffer), maxsize - strlen(buffer));
@@ -293,7 +293,7 @@ void exif_get_info(ExifData * ed, char *buffer, unsign
         {
           /* show canon makernote exif tags. list must be defined in exif_cfg.h  */
           i=0;
-          while ( (Exif_makernote_canon_tag_list[i] != EXIF_CANON_MAKERNOTE_END) && (i < USHRT_MAX) )
+          while ( (i < USHRT_MAX) && (Exif_makernote_canon_tag_list[i] != EXIF_CANON_MAKERNOTE_END) )
           {
             exc_get_mnote_canon_tags(ed, Exif_makernote_canon_tag_list[i], 
                                      buffer + strlen(buffer), maxsize - strlen(buffer));
