mirror of
https://github.com/Stichting-MINIX-Research-Foundation/pkgsrc-ng.git
synced 2025-08-04 10:18:09 -04:00
38 lines
1009 B
C
38 lines
1009 B
C
$NetBSD: patch-action.c,v 1.1 2016/09/09 15:40:17 scole Exp $
|
|
Do not use alloca and strdupa which some platforms may not have
|
|
|
|
--- action.c.orig 2014-05-10 04:54:13.000000000 +0000
|
|
+++ action.c
|
|
@@ -43,6 +43,7 @@
|
|
#include "mksquashfs.h"
|
|
#include "action.h"
|
|
#include "error.h"
|
|
+#include "fnm_extmatch.h"
|
|
|
|
/*
|
|
* code to parse actions
|
|
@@ -1953,9 +1954,22 @@ static char *get_start(char *s, int n)
|
|
|
|
static int subpathname_fn(struct atom *atom, struct action_data *action_data)
|
|
{
|
|
- return fnmatch(atom->argv[0], get_start(strdupa(action_data->subpath),
|
|
+ /* XXX some platforms might not have alloca, strdupa */
|
|
+ int ret_val;
|
|
+ char *copy_str;
|
|
+
|
|
+ if ((copy_str = strdup(action_data->subpath)) == NULL) {
|
|
+ fprintf(stderr, "Out of mem\n");
|
|
+ exit(1);
|
|
+ }
|
|
+
|
|
+ ret_val = fnmatch(atom->argv[0],get_start(copy_str,
|
|
count_components(atom->argv[0])),
|
|
FNM_PATHNAME|FNM_PERIOD|FNM_EXTMATCH) == 0;
|
|
+
|
|
+ free(copy_str);
|
|
+
|
|
+ return ret_val;
|
|
}
|
|
|
|
TEST_VAR_FN(filesize, ACTION_REG, action_data->buf->st_size)
|