2004-08-26 Lutz Mueller <lutz@users.sourceforge.net>
authorLutz Mueller <lutz.s.mueller@gmail.com>
Thu, 26 Aug 2004 20:08:09 +0000 (22:08 +0200)
committerLutz Mueller <lutz.s.mueller@gmail.com>
Thu, 26 Aug 2004 20:08:09 +0000 (22:08 +0200)
Suggestions from Angela Wrobel <Angela.Wrobel@gmx.de>:

* libexif/exif-entry.c
* libexif/exif-loader.c
* libexif/exif-utils.c
* olympus/exif-mnote-data-olympus.c
* pentax/exif-mnote-data-pentax.c: Check if malloc returned NULL.

ChangeLog
libexif/exif-entry.c
libexif/exif-loader.c
libexif/exif-utils.c
libexif/olympus/exif-mnote-data-olympus.c
libexif/pentax/exif-mnote-data-pentax.c

index 8a015c7..d6e81aa 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2004-08-26  Lutz Mueller <lutz@users.sourceforge.net>
+
+       Suggestions from Angela Wrobel <Angela.Wrobel@gmx.de>:
+
+       * libexif/exif-entry.c
+       * libexif/exif-loader.c
+       * libexif/exif-utils.c
+       * olympus/exif-mnote-data-olympus.c
+       * pentax/exif-mnote-data-pentax.c: Check if malloc returned NULL.
+
 2004-07-13  Jan Patera <patera@users.sourceforge.net>
 
        * libexif/exif-mnote-*.*: added exif_mnote_data_get_id()
index e3c865c..99b8eaa 100644 (file)
@@ -46,14 +46,10 @@ exif_entry_new (void)
        ExifEntry *e;
 
        e = malloc (sizeof (ExifEntry));
-       if (!e)
-               return NULL;
+       if (!e) return NULL;
        memset (e, 0, sizeof (ExifEntry));
        e->priv = malloc (sizeof (ExifEntryPrivate));
-       if (!e->priv) {
-               free (e);
-               return NULL;
-       }
+       if (!e->priv) { free (e); return NULL; }
        memset (e->priv, 0, sizeof (ExifEntryPrivate));
        e->priv->ref_count = 1;
 
@@ -798,7 +794,7 @@ exif_entry_initialize (ExifEntry *e, ExifTag tag)
                e->format = EXIF_FORMAT_LONG;
                e->size = exif_format_get_size (e->format) * e->components;
                e->data = malloc (e->size);
-               memset (e->data, 0, e->size);
+               if (e->data) memset (e->data, 0, e->size);
                break;
 
        /* SHORT, 1 component, no default */
@@ -892,7 +888,7 @@ exif_entry_initialize (ExifEntry *e, ExifTag tag)
                e->format = EXIF_FORMAT_SRATIONAL;
                e->size = exif_format_get_size (e->format) * e->components;
                e->data = malloc (e->size);
-               memset (e->data, 0, e->size);
+               if (e->data) memset (e->data, 0, e->size);
                break;
 
        /* RATIONAL, 1 component, no default */
@@ -913,7 +909,7 @@ exif_entry_initialize (ExifEntry *e, ExifTag tag)
                e->format = EXIF_FORMAT_RATIONAL;
                e->size = exif_format_get_size (e->format) * e->components;
                e->data = malloc (e->size);
-               memset (e->data, 0, e->size);
+               if (e->data) memset (e->data, 0, e->size);
                break;
 
        /* RATIONAL, 1 component, default 72/1 */
@@ -934,7 +930,7 @@ exif_entry_initialize (ExifEntry *e, ExifTag tag)
                e->format = EXIF_FORMAT_RATIONAL;
                e->size = exif_format_get_size (e->format) * e->components;
                e->data = malloc (e->size);
-               memset (e->data, 0, e->size);
+               if (e->data) memset (e->data, 0, e->size);
                break;
 
        /* RATIONAL, 6 components */
index 031f578..31acb3b 100644 (file)
@@ -62,7 +62,7 @@ exif_loader_write (ExifLoader *eld, unsigned char *buf, unsigned int len)
 {
        int i, len_remain;
 
-       if (!eld) return 0;
+       if (!eld || !buf || !len) return 0;
        if (eld->state == EL_FAILED) return 0;
        if (eld->size && eld->bytes_read == eld->size) return 0;
 
@@ -144,6 +144,7 @@ exif_loader_write (ExifLoader *eld, unsigned char *buf, unsigned int len)
        if (eld->state == EL_EXIF_FOUND && len_remain > 0) {
                if (eld->buf == NULL) {
                        eld->buf = malloc (sizeof (unsigned char) * eld->size);
+                       if (!eld->buf) return 0;
                        eld->bytes_read = 0;
                }
 
@@ -169,9 +170,10 @@ exif_loader_new (void)
 {
        ExifLoader *loader = malloc (sizeof (ExifLoader));
 
+       if (!loader) return NULL;
        memset (loader, 0, sizeof (ExifLoader));
        loader->ref_count = 1;
-       
+
        return loader;
 }
 
index e895a74..728e3df 100644 (file)
@@ -26,6 +26,7 @@ typedef signed short ExifSShort;
 static ExifSShort
 exif_get_sshort (const unsigned char *buf, ExifByteOrder order)
 {
+       if (!buf) return 0;
         switch (order) {
         case EXIF_BYTE_ORDER_MOTOROLA:
                 return ((buf[0] << 8) | buf[1]);
@@ -46,6 +47,7 @@ exif_get_short (const unsigned char *buf, ExifByteOrder order)
 void
 exif_set_short (unsigned char *b, ExifByteOrder order, ExifShort value)
 {
+       if (!b) return;
        switch (order) {
        case EXIF_BYTE_ORDER_MOTOROLA:
                b[0] = (unsigned char) (value >> 8);
@@ -61,6 +63,7 @@ exif_set_short (unsigned char *b, ExifByteOrder order, ExifShort value)
 ExifSLong
 exif_get_slong (const unsigned char *b, ExifByteOrder order)
 {
+       if (!b) return 0;
         switch (order) {
         case EXIF_BYTE_ORDER_MOTOROLA:
                 return ((b[0] << 24) | (b[1] << 16) | (b[2] << 8) | b[3]);
@@ -75,6 +78,7 @@ exif_get_slong (const unsigned char *b, ExifByteOrder order)
 void
 exif_set_slong (unsigned char *b, ExifByteOrder order, ExifSLong value)
 {
+       if (!b) return;
        switch (order) {
        case EXIF_BYTE_ORDER_MOTOROLA:
                b[0] = (unsigned char) (value >> 24);
@@ -108,8 +112,8 @@ exif_get_srational (const unsigned char *buf, ExifByteOrder order)
 {
        ExifSRational r;
 
-       r.numerator   = exif_get_slong (buf, order);
-       r.denominator = exif_get_slong (buf + 4, order);
+       r.numerator   = buf ? exif_get_slong (buf, order) : 0;
+       r.denominator = buf ? exif_get_slong (buf + 4, order) : 0;
 
        return (r);
 }
@@ -119,8 +123,8 @@ exif_get_rational (const unsigned char *buf, ExifByteOrder order)
 {
        ExifRational r;
 
-       r.numerator   = exif_get_long (buf, order);
-       r.denominator = exif_get_long (buf + 4, order);
+       r.numerator   = buf ? exif_get_long (buf, order) : 0;
+       r.denominator = buf ? exif_get_long (buf + 4, order) : 0;
 
        return (r);
 }
@@ -129,6 +133,7 @@ void
 exif_set_rational (unsigned char *buf, ExifByteOrder order,
                   ExifRational value)
 {
+       if (!buf) return;
        exif_set_long (buf, order, value.numerator);
        exif_set_long (buf + 4, order, value.denominator);
 }
@@ -137,6 +142,7 @@ void
 exif_set_srational (unsigned char *buf, ExifByteOrder order,
                    ExifSRational value)
 {
+       if (!buf) return;
        exif_set_slong (buf, order, value.numerator);
        exif_set_slong (buf + 4, order, value.denominator);
 }
index 24f8b68..33f08a3 100644 (file)
@@ -265,6 +265,7 @@ exif_mnote_data_olympus_load (ExifMnoteData *en,
        exif_mnote_data_olympus_clear (n);
 
        n->entries = malloc (sizeof (MnoteOlympusEntry) * c);
+       if (!n->entries) return;
        memset (n->entries, 0, sizeof (MnoteOlympusEntry) * c);
 
        /* Parse the entries */
index 057e75f..4ea12f8 100644 (file)
@@ -79,6 +79,7 @@ exif_mnote_data_pentax_load (ExifMnoteData *en,
        if (buf_size < 2) return;
        c = exif_get_short (buf + 6 + n->offset, n->order);
        n->entries = malloc (sizeof (MnotePentaxEntry) * c);
+       if (!n->entries) return;
        memset (n->entries, 0, sizeof (MnotePentaxEntry) * c);
 
        for (i = 0; i < c; i++) {