GCC Code Coverage Report
Directory: ./ Exec Total Coverage
File: usr.bin/sort/mem.c Lines: 17 22 77.3 %
Date: 2017-11-07 Branches: 5 10 50.0 %

Line Branch Exec Source
1
/*	$OpenBSD: mem.c,v 1.6 2015/04/02 20:30:45 millert Exp $	*/
2
3
/*-
4
 * Copyright (C) 2009 Gabor Kovesdan <gabor@FreeBSD.org>
5
 * Copyright (C) 2012 Oleg Moskalenko <mom040267@gmail.com>
6
 * All rights reserved.
7
 *
8
 * Redistribution and use in source and binary forms, with or without
9
 * modification, are permitted provided that the following conditions
10
 * are met:
11
 * 1. Redistributions of source code must retain the above copyright
12
 *    notice, this list of conditions and the following disclaimer.
13
 * 2. Redistributions in binary form must reproduce the above copyright
14
 *    notice, this list of conditions and the following disclaimer in the
15
 *    documentation and/or other materials provided with the distribution.
16
 *
17
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
18
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
21
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27
 * SUCH DAMAGE.
28
 */
29
30
#include <err.h>
31
#include <stdio.h>
32
#include <string.h>
33
34
#include "mem.h"
35
36
/*
37
 * malloc() wrapper.
38
 */
39
void *
40
sort_malloc(size_t size)
41
{
42
	void *ptr;
43
44
13133578
	if ((ptr = malloc(size)) == NULL)
45
		err(2, NULL);
46
6566789
	return ptr;
47
}
48
49
/*
50
 * calloc() wrapper.
51
 */
52
void *
53
sort_calloc(size_t nmemb, size_t size)
54
{
55
	void *ptr;
56
57
10808100
	if ((ptr = calloc(nmemb, size)) == NULL)
58
		err(2, NULL);
59
5404050
	return ptr;
60
}
61
62
/*
63
 * free() wrapper.
64
 */
65
void
66
sort_free(void *ptr)
67
{
68
17923080
	free(ptr);
69
8961540
}
70
71
/*
72
 * reallocarray() wrapper.
73
 */
74
void *
75
sort_reallocarray(void *ptr, size_t nmemb, size_t size)
76
{
77
871366
	if ((ptr = reallocarray(ptr, nmemb, size)) == NULL)
78
		err(2, NULL);
79
435683
	return ptr;
80
}
81
82
char *
83
sort_strdup(const char *str)
84
{
85
	char *dup;
86
87
7936
	if ((dup = strdup(str)) == NULL)
88
		err(2, NULL);
89
3968
	return dup;
90
}
91
92
int
93
sort_asprintf(char **ret, const char *fmt, ...)
94
{
95
	int len;
96
832
	va_list ap;
97
98
416
	va_start(ap, fmt);
99
416
	len = vasprintf(ret, fmt, ap);
100
416
	va_end(ap);
101
102
416
	if (len == -1)
103
		err(2, NULL);
104
416
	return len;
105
416
}