diff --git a/binlog.c b/binlog.c index 0414fa1..49dfee0 100644 --- a/binlog.c +++ b/binlog.c @@ -685,7 +685,7 @@ void replay_log_event (void) { assert (C->user_list[i].user_id != user); } C->user_list_size ++; - C->user_list = realloc (C->user_list, 12 * C->user_list_size); + C->user_list = trealloc (C->user_list, 12 * C->user_list_size); C->user_list[C->user_list_size - 1].user_id = user; C->user_list[C->user_list_size - 1].inviter_id = inviter; C->user_list[C->user_list_size - 1].date = date; @@ -715,7 +715,7 @@ void replay_log_event (void) { } assert (C->user_list[C->user_list_size - 1].user_id == user); C->user_list_size --; - C->user_list = realloc (C->user_list, 12 * C->user_list_size); + C->user_list = trealloc (C->user_list, 12 * C->user_list_size); C->user_list_version = version; } break; diff --git a/tools.c b/tools.c index bcaa527..748edd5 100644 --- a/tools.c +++ b/tools.c @@ -31,6 +31,12 @@ static void out_of_memory (void) { assert (0 && "Out of memory"); } +void *trealloc (void *ptr, size_t size) { + void *p = realloc (ptr, size); + ensure_ptr (p); + return p; +} + void *talloc (size_t size) { void *p = malloc (size); ensure_ptr (p); diff --git a/tools.h b/tools.h index f3f7f88..9753b86 100644 --- a/tools.h +++ b/tools.h @@ -21,6 +21,7 @@ #define __TOOLS_H__ void *talloc (size_t size); +void *trealloc (void *ptr, size_t size); void *talloc0 (size_t size); char *tstrdup (const char *s); void ensure (int r);