@@ -58,6 +58,7 @@ DEALINGS IN THE SOFTWARE.
58
58
59
59
#include < algorithm>
60
60
#include < array>
61
+ #include < cassert>
61
62
#include < cstddef>
62
63
#include < cstdint>
63
64
#include < cstring>
@@ -129,6 +130,8 @@ namespace osmium {
129
130
}
130
131
131
132
void add (const char * string, std::size_t size) {
133
+ assert (string);
134
+
132
135
if (m_table.empty ()) {
133
136
m_table.resize (entry_size * number_of_entries);
134
137
}
@@ -260,8 +263,10 @@ namespace osmium {
260
263
}
261
264
262
265
const char * decode_string (const char ** dataptr, const char * const end) {
266
+ assert (*dataptr != end);
267
+
263
268
if (**dataptr == 0x00 ) { // get inline string
264
- (*dataptr)++ ;
269
+ ++ (*dataptr);
265
270
if (*dataptr == end) {
266
271
throw o5m_error{" string format error" };
267
272
}
@@ -273,6 +278,8 @@ namespace osmium {
273
278
}
274
279
275
280
std::pair<osmium::user_id_type, const char *> decode_user (const char ** dataptr, const char * const end) {
281
+ assert (*dataptr != end);
282
+
276
283
const bool update_pointer = (**dataptr == 0x00 );
277
284
const char * data = decode_string (dataptr, end);
278
285
const char * start = data;
@@ -367,7 +374,7 @@ namespace osmium {
367
374
object.set_uid (uid_user.first );
368
375
user = uid_user.second ;
369
376
} else {
370
- object.set_uid (user_id_type ( 0 ) );
377
+ object.set_uid (user_id_type{ 0 } );
371
378
}
372
379
}
373
380
}
@@ -436,6 +443,8 @@ namespace osmium {
436
443
}
437
444
438
445
std::pair<osmium::item_type, const char *> decode_role (const char ** dataptr, const char * const end) {
446
+ assert (*dataptr != end);
447
+
439
448
const bool update_pointer = (**dataptr == 0x00 );
440
449
const char * data = decode_string (dataptr, end);
441
450
const char * start = data;
0 commit comments