xref: /third_party/ntfs-3g/libntfs-3g/misc.c (revision 987da915)
1987da915Sopenharmony_ci/**
2987da915Sopenharmony_ci * misc.c : miscellaneous :
3987da915Sopenharmony_ci *		- dealing with errors in memory allocation
4987da915Sopenharmony_ci *
5987da915Sopenharmony_ci * Copyright (c) 2008 Jean-Pierre Andre
6987da915Sopenharmony_ci *
7987da915Sopenharmony_ci * This program/include file is free software; you can redistribute it and/or
8987da915Sopenharmony_ci * modify it under the terms of the GNU General Public License as published
9987da915Sopenharmony_ci * by the Free Software Foundation; either version 2 of the License, or
10987da915Sopenharmony_ci * (at your option) any later version.
11987da915Sopenharmony_ci *
12987da915Sopenharmony_ci * This program/include file is distributed in the hope that it will be
13987da915Sopenharmony_ci * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
14987da915Sopenharmony_ci * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15987da915Sopenharmony_ci * GNU General Public License for more details.
16987da915Sopenharmony_ci *
17987da915Sopenharmony_ci * You should have received a copy of the GNU General Public License
18987da915Sopenharmony_ci * along with this program (in the main directory of the NTFS-3G
19987da915Sopenharmony_ci * distribution in the file COPYING); if not, write to the Free Software
20987da915Sopenharmony_ci * Foundation,Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
21987da915Sopenharmony_ci */
22987da915Sopenharmony_ci
23987da915Sopenharmony_ci#ifdef HAVE_CONFIG_H
24987da915Sopenharmony_ci#include "config.h"
25987da915Sopenharmony_ci#endif
26987da915Sopenharmony_ci
27987da915Sopenharmony_ci#ifdef HAVE_STDLIB_H
28987da915Sopenharmony_ci#include <stdlib.h>
29987da915Sopenharmony_ci#endif
30987da915Sopenharmony_ci#ifdef HAVE_STRING_H
31987da915Sopenharmony_ci#include <string.h>
32987da915Sopenharmony_ci#endif
33987da915Sopenharmony_ci
34987da915Sopenharmony_ci#include "types.h"
35987da915Sopenharmony_ci#include "misc.h"
36987da915Sopenharmony_ci#include "logging.h"
37987da915Sopenharmony_ci
38987da915Sopenharmony_ci/**
39987da915Sopenharmony_ci * ntfs_calloc
40987da915Sopenharmony_ci *
41987da915Sopenharmony_ci * Return a pointer to the allocated memory or NULL if the request fails.
42987da915Sopenharmony_ci */
43987da915Sopenharmony_civoid *ntfs_calloc(size_t size)
44987da915Sopenharmony_ci{
45987da915Sopenharmony_ci	void *p;
46987da915Sopenharmony_ci
47987da915Sopenharmony_ci	p = calloc(1, size);
48987da915Sopenharmony_ci	if (!p)
49987da915Sopenharmony_ci		ntfs_log_perror("Failed to calloc %lld bytes", (long long)size);
50987da915Sopenharmony_ci	return p;
51987da915Sopenharmony_ci}
52987da915Sopenharmony_ci
53987da915Sopenharmony_civoid *ntfs_malloc(size_t size)
54987da915Sopenharmony_ci{
55987da915Sopenharmony_ci	void *p;
56987da915Sopenharmony_ci
57987da915Sopenharmony_ci	p = malloc(size);
58987da915Sopenharmony_ci	if (!p)
59987da915Sopenharmony_ci		ntfs_log_perror("Failed to malloc %lld bytes", (long long)size);
60987da915Sopenharmony_ci	return p;
61987da915Sopenharmony_ci}
62987da915Sopenharmony_ci
63987da915Sopenharmony_civoid *ntfs_realloc(void *ptr, size_t size)
64987da915Sopenharmony_ci{
65987da915Sopenharmony_ci	void *p;
66987da915Sopenharmony_ci
67987da915Sopenharmony_ci	p = realloc(ptr, size);
68987da915Sopenharmony_ci	if (!p)
69987da915Sopenharmony_ci		ntfs_log_perror("Failed to realloc %lld bytes",
70987da915Sopenharmony_ci				(long long)size);
71987da915Sopenharmony_ci	return p;
72987da915Sopenharmony_ci}
73987da915Sopenharmony_ci
74987da915Sopenharmony_civoid ntfs_free(void *p)
75987da915Sopenharmony_ci{
76987da915Sopenharmony_ci	free(p);
77987da915Sopenharmony_ci}
78