diff options
author | tradke <tradke@17b73243-c579-4c4c-a9d2-2d5706c11dac> | 1999-10-27 21:57:00 +0000 |
---|---|---|
committer | tradke <tradke@17b73243-c579-4c4c-a9d2-2d5706c11dac> | 1999-10-27 21:57:00 +0000 |
commit | 2c15b5bab62c566efc9dd569ae5bd46b4f3f55f9 (patch) | |
tree | ccc8214aea628d2a0edf88afce609ef6e7427fd1 /src | |
parent | ca7eda52b298b5a69101aa0014de5455cf7541b0 (diff) |
Check for an active handle in Util_GetHandle().
The following strcmp() crashed if an already destroyed handle
was passed.
git-svn-id: http://svn.cactuscode.org/flesh/trunk@1113 17b73243-c579-4c4c-a9d2-2d5706c11dac
Diffstat (limited to 'src')
-rw-r--r-- | src/util/StoreHandledData.c | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/src/util/StoreHandledData.c b/src/util/StoreHandledData.c index d9e14a4e..fecc37d8 100644 --- a/src/util/StoreHandledData.c +++ b/src/util/StoreHandledData.c @@ -285,15 +285,18 @@ int Util_GetHandle(cHandledData *storage, const char *name, void **data) { for(current = 0; current < storage->array_size; current++) { - if(!strcmp(name, storage->array[current].name)) + if(storage->array[current].in_use == TRUE) { - handle = current; - /* Return the associated data if required. */ - if(data) - { - *data = storage->array[current].data; - }; - break; + if(!strcmp(name, storage->array[current].name)) + { + handle = current; + /* Return the associated data if required. */ + if(data) + { + *data = storage->array[current].data; + }; + break; + } } } } |