Skip to content
GitLab
About GitLab
GitLab: the DevOps platform
Explore GitLab
Install GitLab
How GitLab compares
Get started
GitLab docs
GitLab Learn
Pricing
Talk to an expert
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Projects
Groups
Snippets
Sign up now
Login
Sign in
Toggle navigation
Menu
Open sidebar
Video AG Infrastruktur
ffworker
Commits
cbecc66c
Commit
cbecc66c
authored
Dec 05, 2017
by
Julian Rother
Browse files
publish_video: Fixed path sanitizing
parent
ca4d3423
Changes
2
Hide whitespace changes
Inline
Side-by-side
publish_video.c
View file @
cbecc66c
...
...
@@ -15,11 +15,11 @@ int main(int argc, char *argv[])
jobid
=
atoi
(
argv
[
1
]);
ping_job
(
jobid
,
"running"
,
0
);
src
=
buildpath
(
getenv
(
WORKER_TMP
),
jstr
(
jlookup
(
argv
[
4
],
"source"
),
0
));
dest
=
buildpath
(
getenv
(
WORKER_RELEASED
),
jstr
(
jlookup
(
argv
[
4
],
"path"
),
0
));
destdir
=
dirname
(
mprintf
(
"%s/%s"
,
getenv
(
WORKER_RELEASED
),
jstr
(
jlookup
(
argv
[
4
],
"path"
),
""
)));
overwrite_check
(
dest
,
0
,
0
);
destdir
=
buildpath
(
getenv
(
WORKER_RELEASED
),
dirname
(
jstr
(
jlookup
(
argv
[
4
],
"path"
),
0
)));
if
(
mkdir
(
destdir
,
02775
)
&&
errno
!=
EEXIST
)
job_failed
(
"Could not create target directory
\"
%s
\"
: %s"
,
destdir
,
strerror
(
errno
));
dest
=
buildpath
(
getenv
(
WORKER_RELEASED
),
jstr
(
jlookup
(
argv
[
4
],
"path"
),
0
));
overwrite_check
(
dest
,
0
,
0
);
if
(
rename
(
src
,
dest
))
job_failed
(
"Overwriting target file failed: %s"
,
strerror
(
errno
));
ping_job
(
jobid
,
"finished"
,
"{%s,
\"
log
\"
:
\"
%s
\"
}"
,
...
...
util/buildpath.c
View file @
cbecc66c
...
...
@@ -8,10 +8,10 @@ char *buildpath(char *root, char *path)
if
(
!
path
)
job_failed
(
"Cannot build path: Value is empty"
);
if
(
!
(
root
=
realpath
(
root
,
0
)))
exit
(
99
);
job_failed
(
"Building path failed: %s"
,
strerror
(
errno
)
);
tmp
=
mprintf
(
"%s/%s"
,
root
,
path
);
if
(
!
(
path
=
realpath
(
tmp
,
0
)))
exit
(
99
);
job_failed
(
"Building path failed: %s"
,
strerror
(
errno
)
);
free
(
tmp
);
if
(
strncmp
(
root
,
path
,
strlen
(
root
)))
job_failed
(
"Cannot build path: Path points out of root directory"
);
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment