Skip to content
Permalink
Browse files

pool and root mount is not allowed

fixed root and pool mount equality

correted root_path case

root and pool mount restrcited

debugging for restricting mount

debugging for restricting mount

debugging for restricting mount

debugging for restricting mount

debugging for restricting mount

debugging for restricting mount

debugging for restricting mount

debugging for restricting mount

debugging for restricting mount

debugging for restricting mount

debugging for restricting mount

debugging for restricting mount

debugging for restricting mount

debugging for restricting mount

debugging for restricting mount

debugging for restricting mount

debugging for restricting mount

debugging for restricting mount

debugging for restricting mount

debugging for restricting mount

self mount, parent mount restricted

removed unwanted changes

review update

Signed-off-by: TulsiJain <tulsi.jain@delphix.com>

remove unwanted files

Signed-off-by: TulsiJain <tulsi.jain@delphix.com>

parent reference error corrected

Signed-off-by: TulsiJain <tulsi.jain@delphix.com>

80 words limit meet

Signed-off-by: TulsiJain <tulsi.jain@delphix.com>

added test cases

added test cases

added test cases

Signed-off-by: TulsiJain <tulsi.jain@delphix.com>

comment corrected

Signed-off-by: TulsiJain <tulsi.jain@delphix.com>

master match

master match

master match

master match

formatting

Signed-off-by: TulsiJain <tulsi.jain@delphix.com>

name corrected

name corrected
  • Loading branch information...
TulsiJain committed May 29, 2019
1 parent 047262e commit 37a815af0145de450432e65367da03b79fce910c
@@ -43,6 +43,8 @@ typedef enum {
NAME_ERR_RESERVED, /* entire name is reserved */
NAME_ERR_DISKLIKE, /* reserved disk name (c[0-9].*) */
NAME_ERR_TOOLONG, /* name is too long */
NAME_ERR_SELF_REF, /* reserved self path name ('.') */
NAME_ERR_PARENT_REF, /* reserved parent path name ('..') */
NAME_ERR_NO_AT, /* permission set is missing '@' */
} namecheck_err_t;

@@ -197,6 +197,16 @@ zfs_validate_name(libzfs_handle_t *hdl, const char *path, int type,
"reserved disk name"));
break;

case NAME_ERR_SELF_REF:
zfs_error_aux(hdl, dgettext(TEXT_DOMAIN,
"self reference, '.' is found in name"));
break;

case NAME_ERR_PARENT_REF:
zfs_error_aux(hdl, dgettext(TEXT_DOMAIN,
"parent reference, '..' is found in name"));
break;

default:
zfs_error_aux(hdl, dgettext(TEXT_DOMAIN,
"(%d) not defined"), why);
@@ -232,6 +232,27 @@ entity_namecheck(const char *path, namecheck_err_t *why, char *what)
}
}

if (*end == '\0' || *end == '/') {
int component_length = end - start;
/* Validate the contents of this component is not '.' */
if (component_length == 1) {
if (start[0] == '.') {
if (why)
*why = NAME_ERR_SELF_REF;
return (-1);
}
}

/* Validate the content of this component is not '..' */
if (component_length == 2) {
if (start[0] == '.' && start[1] == '.') {
if (why)
*why = NAME_ERR_PARENT_REF;
return (-1);
}
}
}

/* Snapshot or bookmark delimiter found */
if (*end == '@' || *end == '#') {
/* Multiple delimiters are not allowed */
@@ -3025,10 +3025,8 @@ dsl_scan_async_block_should_pause(dsl_scan_t *scn)
if (zfs_recover)
return (B_FALSE);

if (zfs_async_block_max_blocks != 0 &&
scn->scn_visited_this_txg >= zfs_async_block_max_blocks) {
if (scn->scn_visited_this_txg >= zfs_async_block_max_blocks)
return (B_TRUE);
}

elapsed_nanosecs = gethrtime() - scn->scn_sync_start_time;
return (elapsed_nanosecs / NANOSEC > zfs_txg_timeout ||
@@ -90,7 +90,9 @@ set -A args "$TESTPOOL/" "$TESTPOOL//blah" "$TESTPOOL/@blah" \
"$TESTPOOL/blah*blah" "$TESTPOOL/blah blah" \
"-s $TESTPOOL/$TESTFS1" "-b 1092 $TESTPOOL/$TESTFS1" \
"-b 64k $TESTPOOL/$TESTFS1" "-s -b 32k $TESTPOOL/$TESTFS1" \
"$TESTPOOL/$BYND_MAX_NAME" "$TESTPOOL/$BYND_NEST_LIMIT"
"$TESTPOOL/$BYND_MAX_NAME" "$TESTPOOL/$BYND_NEST_LIMIT" \
"$TESTPOOL/." "$TESTPOOL/.." "$TESTPOOL/../blah" "$TESTPOOL/./blah" \
"$TESTPOOL/blah/./blah" "$TESTPOOL/blah/../blah"

log_assert "Verify 'zfs create <filesystem>' fails with bad <filesystem> argument."

0 comments on commit 37a815a

Please sign in to comment.
You can’t perform that action at this time.