hardlink: use our xalloc.h
Signed-off-by: Karel Zak <kzak@redhat.com>
This commit is contained in:
parent
40b119b990
commit
0361f7440c
|
@ -39,6 +39,7 @@
|
||||||
|
|
||||||
#include "nls.h"
|
#include "nls.h"
|
||||||
#include "c.h"
|
#include "c.h"
|
||||||
|
#include "xalloc.h"
|
||||||
|
|
||||||
/* Use libpcre2posix if it's available */
|
/* Use libpcre2posix if it's available */
|
||||||
#ifdef HAVE_PCRE2_POSIX
|
#ifdef HAVE_PCRE2_POSIX
|
||||||
|
@ -347,23 +348,6 @@ static int handle_interrupt(void)
|
||||||
|
|
||||||
#ifdef HAVE_SYS_XATTR_H
|
#ifdef HAVE_SYS_XATTR_H
|
||||||
|
|
||||||
/**
|
|
||||||
* malloc_or_die -- Wrapper for malloc()
|
|
||||||
*
|
|
||||||
* This does the same thing as malloc() except that it aborts if memory
|
|
||||||
* can't be allocated.
|
|
||||||
*/
|
|
||||||
static void *malloc_or_die(size_t size)
|
|
||||||
{
|
|
||||||
void *mem = malloc(size);
|
|
||||||
|
|
||||||
if (!mem) {
|
|
||||||
jlog(JLOG_SYSFAT, "Cannot allocate memory");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
return mem;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* llistxattr_or_die - Wrapper for llistxattr()
|
* llistxattr_or_die - Wrapper for llistxattr()
|
||||||
*
|
*
|
||||||
|
@ -434,7 +418,7 @@ static int cmp_xattr_name_ptrs(const void *ptr1, const void *ptr2)
|
||||||
*/
|
*/
|
||||||
static const char **get_sorted_xattr_name_table(const char *names, int n)
|
static const char **get_sorted_xattr_name_table(const char *names, int n)
|
||||||
{
|
{
|
||||||
const char **table = malloc_or_die(n * sizeof(char *));
|
const char **table = xmalloc(n * sizeof(char *));
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (i = 0; i < n; i++) {
|
for (i = 0; i < n; i++) {
|
||||||
|
@ -486,8 +470,8 @@ static int file_xattrs_equal(const struct file *a, const struct file *b)
|
||||||
if (len_a != len_b)
|
if (len_a != len_b)
|
||||||
return FALSE; // total lengths of xattr names differ
|
return FALSE; // total lengths of xattr names differ
|
||||||
|
|
||||||
names_a = malloc_or_die(len_a);
|
names_a = xmalloc(len_a);
|
||||||
names_b = malloc_or_die(len_b);
|
names_b = xmalloc(len_b);
|
||||||
|
|
||||||
len_a = llistxattr_or_die(a->links->path, names_a, len_a);
|
len_a = llistxattr_or_die(a->links->path, names_a, len_a);
|
||||||
len_b = llistxattr_or_die(b->links->path, names_b, len_b);
|
len_b = llistxattr_or_die(b->links->path, names_b, len_b);
|
||||||
|
@ -517,8 +501,8 @@ static int file_xattrs_equal(const struct file *a, const struct file *b)
|
||||||
if (len_a != len_b)
|
if (len_a != len_b)
|
||||||
goto exit; // xattrs with same name, different value lengths
|
goto exit; // xattrs with same name, different value lengths
|
||||||
|
|
||||||
value_a = malloc_or_die(len_a);
|
value_a = xmalloc(len_a);
|
||||||
value_b = malloc_or_die(len_b);
|
value_b = xmalloc(len_b);
|
||||||
|
|
||||||
len_a = lgetxattr_or_die(a->links->path, name_ptrs_a[i],
|
len_a = lgetxattr_or_die(a->links->path, name_ptrs_a[i],
|
||||||
value_a, len_a);
|
value_a, len_a);
|
||||||
|
@ -699,12 +683,7 @@ static int file_link(struct file *a, struct file *b)
|
||||||
|
|
||||||
if (!opts.dry_run) {
|
if (!opts.dry_run) {
|
||||||
size_t len = strlen(b->links->path) + strlen(".hardlink-temporary") + 1;
|
size_t len = strlen(b->links->path) + strlen(".hardlink-temporary") + 1;
|
||||||
char *new_path = malloc(len);
|
char *new_path = xmalloc(len);
|
||||||
|
|
||||||
if (new_path == NULL) {
|
|
||||||
jlog(JLOG_SYSFAT, "Cannot allocate memory");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
snprintf(new_path, len, "%s.hardlink-temporary", b->links->path);
|
snprintf(new_path, len, "%s.hardlink-temporary", b->links->path);
|
||||||
|
|
||||||
|
@ -792,15 +771,8 @@ static int inserter(const char *fpath, const struct stat *sb, int typeflag,
|
||||||
|
|
||||||
pathlen = strlen(fpath) + 1;
|
pathlen = strlen(fpath) + 1;
|
||||||
|
|
||||||
fil = calloc(1, sizeof(*fil));
|
fil = xcalloc(1, sizeof(*fil));
|
||||||
|
fil->links = xcalloc(1, sizeof(struct link) + pathlen);
|
||||||
if (fil == NULL)
|
|
||||||
return jlog(JLOG_SYSFAT, "Cannot continue"), 1;
|
|
||||||
|
|
||||||
fil->links = calloc(1, sizeof(struct link) + pathlen);
|
|
||||||
|
|
||||||
if (fil->links == NULL)
|
|
||||||
return jlog(JLOG_SYSFAT, "Cannot continue"), 1;
|
|
||||||
|
|
||||||
fil->st = *sb;
|
fil->st = *sb;
|
||||||
fil->links->basename = ftwbuf->base;
|
fil->links->basename = ftwbuf->base;
|
||||||
|
@ -956,21 +928,11 @@ static int register_regex(struct regex_link **pregs, const char *regex)
|
||||||
struct regex_link *link;
|
struct regex_link *link;
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
link = malloc(sizeof(*link));
|
link = xmalloc(sizeof(*link));
|
||||||
|
|
||||||
if (link == NULL) {
|
|
||||||
jlog(JLOG_SYSFAT, "Cannot allocate memory");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((err = regcomp(&link->preg, regex, REG_NOSUB | REG_EXTENDED)) != 0) {
|
if ((err = regcomp(&link->preg, regex, REG_NOSUB | REG_EXTENDED)) != 0) {
|
||||||
size_t size = regerror(err, &link->preg, NULL, 0);
|
size_t size = regerror(err, &link->preg, NULL, 0);
|
||||||
char *buf = malloc(size + 1);
|
char *buf = xmalloc(size + 1);
|
||||||
|
|
||||||
if (buf == NULL) {
|
|
||||||
jlog(JLOG_SYSFAT, "Cannot allocate memory");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
regerror(err, &link->preg, buf, size);
|
regerror(err, &link->preg, buf, size);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue