diff options
Diffstat (limited to 'vcs-svn')
-rw-r--r-- | vcs-svn/svndump.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/vcs-svn/svndump.c b/vcs-svn/svndump.c index c71a57599e..1669d0fa5e 100644 --- a/vcs-svn/svndump.c +++ b/vcs-svn/svndump.c @@ -221,7 +221,10 @@ static void handle_node(void) } if (mark && type == REPO_MODE_DIR) die("invalid dump: directories cannot have text attached"); - if (node_ctx.action == NODEACT_CHANGE) { + if (node_ctx.action == NODEACT_CHANGE && !~*node_ctx.dst) { + if (type != REPO_MODE_DIR) + die("invalid dump: root of tree is not a regular file"); + } else if (node_ctx.action == NODEACT_CHANGE) { uint32_t mode = repo_modify_path(node_ctx.dst, 0, mark); if (!mode) die("invalid dump: path to be modified is missing"); |