aboutsummaryrefslogtreecommitdiffstats
path: root/file_cmds/mtree/spec.c
diff options
context:
space:
mode:
authorCameron Katri <me@cameronkatri.com>2021-05-21 09:21:42 -0400
committerCameron Katri <me@cameronkatri.com>2021-05-21 09:21:42 -0400
commitf06784df5a44c2aeb450ff88346a96f0bc9eb732 (patch)
tree49e9923a65f7cf572a6f0833737b72848299b1c8 /file_cmds/mtree/spec.c
parent0e3bb24ea8cde1573760b88ad56c1cc00be15cc8 (diff)
parent8d788054a62508f8d1b93067be16fb73f987ca8e (diff)
downloadapple_cmds-f06784df5a44c2aeb450ff88346a96f0bc9eb732.tar.gz
apple_cmds-f06784df5a44c2aeb450ff88346a96f0bc9eb732.tar.zst
apple_cmds-f06784df5a44c2aeb450ff88346a96f0bc9eb732.zip
Merge branch 'apple'
Diffstat (limited to 'file_cmds/mtree/spec.c')
-rw-r--r--file_cmds/mtree/spec.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/file_cmds/mtree/spec.c b/file_cmds/mtree/spec.c
index f15d857..4119124 100644
--- a/file_cmds/mtree/spec.c
+++ b/file_cmds/mtree/spec.c
@@ -186,6 +186,7 @@ set(char *t, NODE *ip)
mode_t *m;
int value;
char *ep;
+ char *l;
for (; (kw = strtok(t, "= \t\n")); t = NULL) {
ip->flags |= type = parsekey(kw, &value);
@@ -415,14 +416,19 @@ set(char *t, NODE *ip)
}
break;
case F_XATTRS:
- ep = strtok(val,".");
+ /*
+ * Note this is nested inside an strtok loop,
+ * strtok_r must be used to preserve the strtok context
+ * of the loop.
+ */
+ ep = strtok_r(val,".", &l);
ip->xattrsdigest = strdup(ep);
if (!ip->xattrsdigest) {
error = errno;
RECORD_FAILURE(54, error);
errc(1, error, "strdup");
}
- val = strtok(NULL,".");
+ val = strtok_r(NULL,".", &l);
if (val) {
ip->xdstream_priv_id = strtoull(val, &ep, 10);
if (*ep) {