Mercurial > hg > audiodb
annotate power.cpp @ 411:ad2206c24986 api-inversion
Fix a memory corruption bug.
When allocating the adb_t in audiodb_open(), zero the memory; then we're
not going to try to free() or delete some arbitrary uninitialized thing
if the thing that we're opening turns out not to be an audiodb database.
author | mas01cr |
---|---|
date | Thu, 11 Dec 2008 08:54:06 +0000 |
parents | 7038f31124d1 |
children |
rev | line source |
---|---|
mas01cr@400 | 1 #include "audioDB.h" |
mas01cr@400 | 2 extern "C" { |
mas01cr@400 | 3 #include "audioDB_API.h" |
mas01cr@401 | 4 #include "audioDB-internals.h" |
mas01cr@400 | 5 } |
mas01cr@400 | 6 |
mas01cr@400 | 7 int audiodb_power(adb_t *adb) { |
mas01cr@403 | 8 if(!(adb->flags & O_RDWR)) { |
mas01cr@403 | 9 return 1; |
mas01cr@403 | 10 } |
mas01cr@400 | 11 if(adb->header->length > 0) { |
mas01cr@400 | 12 return 1; |
mas01cr@400 | 13 } |
mas01cr@400 | 14 |
mas01cr@400 | 15 adb->header->flags |= O2_FLAG_POWER; |
mas01cr@400 | 16 return audiodb_sync_header(adb); |
mas01cr@400 | 17 } |