/*
* Copyright (C) 2004-2007 Andre Noll <maan@systemlinux.org>
*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program 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 General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
+ * Licensed under the GPL v2. For licencing details see COPYING.
*/
/** \file string.c memory allocation and string handling functions */
* No need to check for NULL pointers: If p is NULL, the call
* to realloc is equivalent to malloc(size)
*/
+ assert(size);
if (!(p = realloc(p, size))) {
- PARA_EMERG_LOG("%s", "realloc failed, aborting\n");
+ PARA_EMERG_LOG("realloc failed (size = %zu), aborting\n",
+ size);
exit(EXIT_FAILURE);
}
return p;
*/
__must_check __malloc void *para_malloc(size_t size)
{
+ assert(size);
void *p = malloc(size);
if (!p) {
__must_check __malloc char *para_tmpname(void)
{
struct timeval now;
+ unsigned int seed;
+
gettimeofday(&now, NULL);
- srand(now.tv_usec);
+ seed = now.tv_usec;
+ srand(seed);
return make_message("%08i", rand());
}
* \param argv_ptr pointer to the list of substrings
* \param delim delimiter
*
- * This function modifies \p args by replacing each occurance of \p delim by
- * zero. A NULL-terminated array of pointers to char* is allocated dynamically
+ * This function modifies \a args by replacing each occurance of \a delim by
+ * zero. A \p NULL-terminated array of pointers to char* is allocated dynamically
* and these pointers are initialized to point to the broken-up substrings
- * within \p args. A pointer to this array is returned via \p argv_ptr. It's OK
- * to call this function with \p args \p == \p NULL.
+ * within \a args. A pointer to this array is returned via \a argv_ptr. It's OK
+ * to call this function with \a args \a == \p NULL.
*
- * \return The number of substrings found in \p args.
+ * \return The number of substrings found in \a args.
*/
__must_check unsigned split_args(char *args, char ***argv_ptr, const char *delim)
{