Committed as 2513. -Angus
On Sun, 2009-10-11 at 15:47 -0700, Steven Dake wrote: > looks good > On Mon, 2009-10-12 at 11:49 +1300, angus salkeld wrote: > > This just add some validation based on the expected > > vs. actual key value size for typed keys. > > > > -Angus > > > > Signed-off-by: Angus Salkeld <[email protected]> > > --- > > exec/objdb.c | 41 ++++++++++++++++++++++++++++++++++++++++- > > 1 files changed, 40 insertions(+), 1 deletions(-) > > > > diff --git a/exec/objdb.c b/exec/objdb.c > > index 726b302..3334460 100644 > > --- a/exec/objdb.c > > +++ b/exec/objdb.c > > @@ -513,15 +513,54 @@ static int object_key_create_typed( > > int found = 0; > > int i; > > size_t key_len = strlen(key_name); > > + size_t expected_size; > > + int test_size_by_type = CS_TRUE; > > > > objdb_rdlock(); > > > > res = hdb_handle_get (&object_instance_database, > > - object_handle, (void *)&instance); > > + object_handle, (void *)&instance); > > if (res != 0) { > > goto error_exit; > > } > > > > + switch (value_type) { > > + case OBJDB_VALUETYPE_INT16: > > + expected_size = sizeof (int16_t); > > + break; > > + case OBJDB_VALUETYPE_UINT16: > > + expected_size = sizeof (uint16_t); > > + break; > > + case OBJDB_VALUETYPE_INT32: > > + expected_size = sizeof (int32_t); > > + break; > > + case OBJDB_VALUETYPE_UINT32: > > + expected_size = sizeof (uint32_t); > > + break; > > + case OBJDB_VALUETYPE_INT64: > > + expected_size = sizeof (int64_t); > > + break; > > + case OBJDB_VALUETYPE_UINT64: > > + expected_size = sizeof (uint64_t); > > + break; > > + case OBJDB_VALUETYPE_FLOAT: > > + expected_size = sizeof (float); > > + break; > > + case OBJDB_VALUETYPE_DOUBLE: > > + expected_size = sizeof (double); > > + break; > > + case OBJDB_VALUETYPE_ANY: > > + default: > > + test_size_by_type = CS_FALSE; > > + break; > > + } > > + if (test_size_by_type) { > > + if (expected_size != value_len) { > > + //printf ("%s exp:%d != len:%d\n", key_name, > > expected_size, value_len); > > + goto error_put; > > + } > > + } > > + > > /* > > * Do validation check if validation is configured for the parent object > > */ > _______________________________________________ Openais mailing list [email protected] https://lists.linux-foundation.org/mailman/listinfo/openais
