/
githubmirror
/
libseccomp
Обзор
Документация
Войти
/
githubmirror
/
libseccomp
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/helper.c
68 строк
2 KB
Paul Moore
helper: style fixes in zrealloc()
26 июн 2026, 23:40
26 июн 2026, 23:40
f976874
Код
Авторство
О чём код?
/** * Helper functions for libseccomp * * Copyright (c) 2017 Red Hat <pmoore@redhat.com> * Author: Paul Moore <paul@paul-moore.com> */ /* * This library is free software; you can redistribute it and/or modify it * under the terms of version 2.1 of the GNU Lesser General Public License as * published by the Free Software Foundation. * * This library is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License * for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this library; if not, see <http://www.gnu.org/licenses>. */ #include <stdlib.h> #include <string.h> #include "helper.h" /** * Allocate memory * @param size the size of the buffer to allocate * * This function allocates a buffer of the given size, initializes it to zero, * and returns a pointer to buffer on success. NULL is returned on failure. * */ void *zmalloc(size_t size) { /* NOTE: unlike malloc() zero size allocations always return NULL */ if (size == 0) return NULL; return calloc(1, size); } /** * Change the size of an allocated buffer * @param ptr pointer to the allocated buffer * @param old_size the current size of the allocated buffer * @param size the new size of the buffer * * This function changes the size of an allocated memory buffer and returns a * pointer to the buffer on success, the new buffer portion is initialized to * zero. The returned buffer could be located at a different memory location * than what was passed in the @ptr parameter. NULL is returned on failure. * */ void *zrealloc(void *ptr, size_t old_size, size_t size) { /* NOTE: unlike malloc() zero size allocations always return NULL */ if (size == 0) return NULL; ptr = realloc(ptr, size); if (!ptr) return NULL; if (size > old_size) memset(ptr + old_size, 0, size - old_size); return ptr; }