+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()
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;
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 */
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 */
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 */
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 */
{
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;
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;
}
{
ExifLoader *loader = malloc (sizeof (ExifLoader));
+ if (!loader) return NULL;
memset (loader, 0, sizeof (ExifLoader));
loader->ref_count = 1;
-
+
return loader;
}
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]);
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);
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]);
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);
{
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);
}
{
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);
}
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);
}
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);
}
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 */
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++) {