[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r7469 - GNUnet/src/util/containers
From: |
gnunet |
Subject: |
[GNUnet-SVN] r7469 - GNUnet/src/util/containers |
Date: |
Sat, 19 Jul 2008 11:17:20 -0600 (MDT) |
Author: durner
Date: 2008-07-19 11:17:20 -0600 (Sat, 19 Jul 2008)
New Revision: 7469
Modified:
GNUnet/src/util/containers/meta.c
Log:
fix crashes (experienced on FSUI shutdown)
Modified: GNUnet/src/util/containers/meta.c
===================================================================
--- GNUnet/src/util/containers/meta.c 2008-07-19 16:54:13 UTC (rev 7468)
+++ GNUnet/src/util/containers/meta.c 2008-07-19 17:17:20 UTC (rev 7469)
@@ -64,10 +64,13 @@
void
GNUNET_meta_data_destroy (MetaData * md)
{
- int i;
- for (i = 0; i < md->itemCount; i++)
+ int i, ic;
+
+ ic = md ? md->itemCount : 0;
+ for (i = 0; i < ic; i++)
GNUNET_free (md->items[i].data);
- GNUNET_array_grow (md->items, md->itemCount, 0);
+ if (ic)
+ GNUNET_array_grow (md->items, ic, 0);
GNUNET_free (md);
}
@@ -478,7 +481,7 @@
if (max < sizeof (MetaDataHeader))
return GNUNET_SYSERR; /* far too small */
- ic = md->itemCount;
+ ic = md ? md->itemCount : 0;
hdr = NULL;
while (1)
{
@@ -563,7 +566,7 @@
int len;
unsigned int ic;
- ic = md->itemCount;
+ ic = md ? md->itemCount : 0;
size = sizeof (MetaDataHeader);
size += sizeof (unsigned int) * ic;
for (i = 0; i < ic; i++)
@@ -572,11 +575,11 @@
size++;
hdr = GNUNET_malloc (size);
hdr->version = htonl (0);
- hdr->entries = htonl (md->itemCount);
+ hdr->entries = htonl (ic);
for (i = 0; i < ic; i++)
((unsigned int *) &hdr[1])[i] = htonl ((unsigned int) md->items[i].type);
pos = sizeof (MetaDataHeader);
- pos += sizeof (unsigned int) * md->itemCount;
+ pos += sizeof (unsigned int) * ic;
for (i = 0; i < ic; i++)
{
len = strlen (md->items[i].data) + 1;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r7469 - GNUnet/src/util/containers,
gnunet <=