@@ -101,6 +101,8 @@ test_json_binary_metadata_get_blob(void)
101101{
102102 int ret ;
103103 char metadata [128 ];
104+ const char * json ;
105+ tsk_size_t json_buffer_length ;
104106 const uint8_t * blob ;
105107 tsk_size_t blob_length ;
106108 uint8_t * bytes ;
@@ -131,8 +133,13 @@ test_json_binary_metadata_get_blob(void)
131133 memcpy (bytes + header_length + json_length , binary_payload , payload_length );
132134 metadata_length = (tsk_size_t ) total_length ;
133135 ret = tsk_json_binary_metadata_get_blob (
134- metadata , metadata_length , & blob , & blob_length );
136+ metadata , metadata_length , & json , & json_buffer_length , & blob , & blob_length );
135137 CU_ASSERT_EQUAL (ret , 0 );
138+ CU_ASSERT_PTR_EQUAL (json , (const char * ) bytes + header_length );
139+ CU_ASSERT_EQUAL (json_buffer_length , (tsk_size_t ) json_length );
140+ if (json_length > 0 ) {
141+ CU_ASSERT_EQUAL (memcmp (json , json_payload , json_length ), 0 );
142+ }
136143 CU_ASSERT_PTR_EQUAL (blob , bytes + header_length + json_length );
137144 CU_ASSERT_EQUAL (blob_length , (tsk_size_t ) payload_length );
138145 CU_ASSERT_EQUAL (memcmp (blob , binary_payload , payload_length ), 0 );
@@ -143,8 +150,10 @@ test_json_binary_metadata_get_blob(void)
143150 set_u64_le (bytes + 13 , (uint64_t ) payload_length );
144151 metadata_length = (tsk_size_t ) total_length ;
145152 ret = tsk_json_binary_metadata_get_blob (
146- metadata , metadata_length , & blob , & blob_length );
153+ metadata , metadata_length , & json , & json_buffer_length , & blob , & blob_length );
147154 CU_ASSERT_EQUAL (ret , 0 );
155+ CU_ASSERT_PTR_EQUAL (json , (const char * ) bytes + header_length );
156+ CU_ASSERT_EQUAL (json_buffer_length , (tsk_size_t ) json_length );
148157 CU_ASSERT_EQUAL (blob_length , (tsk_size_t ) payload_length );
149158 CU_ASSERT_PTR_EQUAL (blob , bytes + header_length + json_length );
150159
@@ -157,43 +166,55 @@ test_json_binary_metadata_get_blob(void)
157166 memcpy (bytes + header_length + json_length , empty_payload , payload_length );
158167 metadata_length = (tsk_size_t ) total_length ;
159168 ret = tsk_json_binary_metadata_get_blob (
160- metadata , metadata_length , & blob , & blob_length );
169+ metadata , metadata_length , & json , & json_buffer_length , & blob , & blob_length );
161170 CU_ASSERT_EQUAL (ret , 0 );
171+ CU_ASSERT_PTR_EQUAL (json , (const char * ) bytes + header_length );
172+ CU_ASSERT_EQUAL (json_buffer_length , (tsk_size_t ) json_length );
162173 CU_ASSERT_EQUAL (blob_length , (tsk_size_t ) payload_length );
163174 CU_ASSERT_PTR_EQUAL (blob , bytes + header_length + json_length );
164175 CU_ASSERT_EQUAL (memcmp (blob , empty_payload , payload_length ), 0 );
165176
166177 blob = NULL ;
167178 blob_length = 0 ;
179+ json = NULL ;
180+ json_buffer_length = 0 ;
168181 metadata_length = header_length - 1 ;
169182 ret = tsk_json_binary_metadata_get_blob (
170- metadata , metadata_length , & blob , & blob_length );
183+ metadata , metadata_length , & json , & json_buffer_length , & blob , & blob_length );
171184 CU_ASSERT_EQUAL (ret , TSK_ERR_FILE_FORMAT );
172185
173186 metadata_length = (tsk_size_t ) total_length ;
174187 bytes [0 ] = 'X' ;
175188 ret = tsk_json_binary_metadata_get_blob (
176- metadata , metadata_length , & blob , & blob_length );
189+ metadata , metadata_length , & json , & json_buffer_length , & blob , & blob_length );
177190 CU_ASSERT_EQUAL (ret , TSK_ERR_FILE_FORMAT );
178191 bytes [0 ] = 'J' ;
179192
180193 bytes [4 ] = 2 ;
181194 ret = tsk_json_binary_metadata_get_blob (
182- metadata , metadata_length , & blob , & blob_length );
195+ metadata , metadata_length , & json , & json_buffer_length , & blob , & blob_length );
183196 CU_ASSERT_EQUAL (ret , TSK_ERR_FILE_VERSION_TOO_NEW );
184197 bytes [4 ] = 1 ;
185198
186199 metadata_length = (tsk_size_t )(total_length - 1 );
187200 ret = tsk_json_binary_metadata_get_blob (
188- metadata , metadata_length , & blob , & blob_length );
201+ metadata , metadata_length , & json , & json_buffer_length , & blob , & blob_length );
189202 CU_ASSERT_EQUAL (ret , TSK_ERR_FILE_FORMAT );
190203
191- ret = tsk_json_binary_metadata_get_blob (NULL , metadata_length , & blob , & blob_length );
204+ ret = tsk_json_binary_metadata_get_blob (
205+ NULL , metadata_length , & json , & json_buffer_length , & blob , & blob_length );
206+ CU_ASSERT_EQUAL (ret , TSK_ERR_BAD_PARAM_VALUE );
207+ ret = tsk_json_binary_metadata_get_blob (
208+ metadata , metadata_length , NULL , & json_buffer_length , & blob , & blob_length );
192209 CU_ASSERT_EQUAL (ret , TSK_ERR_BAD_PARAM_VALUE );
193210 ret = tsk_json_binary_metadata_get_blob (
194- metadata , metadata_length , NULL , & blob_length );
211+ metadata , metadata_length , & json , NULL , & blob , & blob_length );
195212 CU_ASSERT_EQUAL (ret , TSK_ERR_BAD_PARAM_VALUE );
196- ret = tsk_json_binary_metadata_get_blob (metadata , metadata_length , & blob , NULL );
213+ ret = tsk_json_binary_metadata_get_blob (
214+ metadata , metadata_length , & json , & json_buffer_length , NULL , & blob_length );
215+ CU_ASSERT_EQUAL (ret , TSK_ERR_BAD_PARAM_VALUE );
216+ ret = tsk_json_binary_metadata_get_blob (
217+ metadata , metadata_length , & json , & json_buffer_length , & blob , NULL );
197218 CU_ASSERT_EQUAL (ret , TSK_ERR_BAD_PARAM_VALUE );
198219}
199220
0 commit comments