- fixed bug of generator

This commit is contained in:
Jan Hutter
2005-11-16 15:29:31 +00:00
parent d5fc0f731d
commit de257bc0be
5 changed files with 28 additions and 10 deletions
+13 -4
View File
@@ -269,10 +269,6 @@ static size_t get_current_buffer_space (private_generator_t *this)
{ {
/* we know, one byte more */ /* we know, one byte more */
size_t space = (this->roof_position) - (this->out_position); size_t space = (this->roof_position) - (this->out_position);
if (this->current_bit == 0)
{
space++;
}
return (space); return (space);
} }
@@ -465,6 +461,13 @@ static status_t generate_reserved_field (private_generator_t *this,int bits)
/* one bit processing */ /* one bit processing */
u_int8_t reserved_bit = ~(1 << (7 - this->current_bit)); u_int8_t reserved_bit = ~(1 << (7 - this->current_bit));
*(this->out_position) = *(this->out_position) & reserved_bit; *(this->out_position) = *(this->out_position) & reserved_bit;
if (this->current_bit == 0)
{
/* memory must be zero */
*(this->out_position) = 0x00;
}
this->current_bit++; this->current_bit++;
if (this->current_bit >= 8) if (this->current_bit >= 8)
{ {
@@ -512,6 +515,11 @@ static status_t generate_flag (private_generator_t *this,u_int32_t offset)
{ {
return status; return status;
} }
if (this->current_bit == 0)
{
/* memory must be zero */
*(this->out_position) = 0x00;
}
*(this->out_position) = *(this->out_position) | flag; *(this->out_position) = *(this->out_position) | flag;
@@ -563,6 +571,7 @@ static status_t make_space_available (private_generator_t *this, size_t bits)
new_buffer = allocator_realloc(this->buffer,new_buffer_size); new_buffer = allocator_realloc(this->buffer,new_buffer_size);
if (new_buffer == NULL) if (new_buffer == NULL)
{ {
this->logger->log(this->logger,CONTROL_MORE,"Fatal error: Reallocation of buffer failed!!!");
return OUT_OF_RES; return OUT_OF_RES;
} }
+2 -2
View File
@@ -31,12 +31,12 @@
* Generating is done in a data buffer. * Generating is done in a data buffer.
* This is thehe start size of this buffer in Bytes. * This is thehe start size of this buffer in Bytes.
*/ */
#define GENERATOR_DATA_BUFFER_SIZE 3000 #define GENERATOR_DATA_BUFFER_SIZE 10
/** /**
* Number of bytes to increase the buffer, if it is to small. * Number of bytes to increase the buffer, if it is to small.
*/ */
#define GENERATOR_DATA_BUFFER_INCREASE_VALUE 1000 #define GENERATOR_DATA_BUFFER_INCREASE_VALUE 5
/** /**
*A generator_t object which generates payloads of specific type. *A generator_t object which generates payloads of specific type.
+5
View File
@@ -431,6 +431,8 @@ void test_generator_with_proposal_substructure(tester_t *tester)
0x00,0x00,0x00,0x04, 0x00,0x00,0x00,0x04,
0x69,0x6A,0x6B,0x6C 0x69,0x6A,0x6B,0x6C
}; };
logger->log_bytes(logger,RAW,"expected transform",expected_generation,sizeof(expected_generation));
tester->assert_true(tester,(memcmp(expected_generation,generated_data.ptr,sizeof(expected_generation)) == 0), "compare generated data"); tester->assert_true(tester,(memcmp(expected_generation,generated_data.ptr,sizeof(expected_generation)) == 0), "compare generated data");
allocator_free_chunk(generated_data); allocator_free_chunk(generated_data);
@@ -607,6 +609,9 @@ void test_generator_with_sa_payload(tester_t *tester)
0x07,0x05,0x00,0x00, 0x07,0x05,0x00,0x00,
}; };
logger->log_bytes(logger,RAW,"expected transform",expected_generation,sizeof(expected_generation));
tester->assert_true(tester,(memcmp(expected_generation,generated_data.ptr,sizeof(expected_generation)) == 0), "compare generated data"); tester->assert_true(tester,(memcmp(expected_generation,generated_data.ptr,sizeof(expected_generation)) == 0), "compare generated data");
allocator_free_chunk(generated_data); allocator_free_chunk(generated_data);
+1 -1
View File
@@ -200,7 +200,7 @@ logger_manager_t *global_logger_manager;
&linked_list_insert_and_remove_test, &linked_list_insert_and_remove_test,
&thread_pool_test, &thread_pool_test,
&job_queue_test1, &job_queue_test1,
/* &event_queue_test, ERRROR */ &event_queue_test,
&send_queue_test, &send_queue_test,
&scheduler_test, &scheduler_test,
&socket_test, &socket_test,
+7 -3
View File
@@ -328,15 +328,19 @@ chunk_t allocator_alloc_as_chunk(size_t bytes)
void * allocator_realloc(void * old, size_t newsize) void * allocator_realloc(void * old, size_t newsize)
{ {
return realloc(old,newsize); void *data = realloc(old,newsize);
return data;
} }
void * allocator_clone_bytes(void * pointer, size_t size) void * allocator_clone_bytes(void * pointer, size_t size)
{ {
void *data; void *data;
data = malloc(size); data = malloc(size);
if (data == NULL){ return NULL;}
memcpy(data,pointer,size); if (data == NULL){return NULL;}
memmove(data,pointer,size);
return (data); return (data);
} }