Comments (5)
So, I think the way nftw
is currently used is slightly incorrect.
Basically, nftw
by default continues if the function given in parameter returns 0, and stops if it returns a non-zero value. This behavior can be changed with a glibc-specific flag, FTW_ACTIONRETVAL
, which means instead of returning 0 or non-zero, you return FTW_CONTINUE
, FTW_STOP
or some other values.
In isolate, FTW_CONTINUE
is used although FTW_ACTIONRETVAL
isn't given as a flag. It just happens to work because FTW_CONTINUE
is defined as 0, but it's an incorrect use of the GNU extension.
Since we don't use the capabilities offered by FTW_ACTIONRETVAL
, I think the fix here is just:
diff --git a/util.c b/util.c
index 9f4cd70..07180ac 100644
--- a/util.c
+++ b/util.c
@@ -83,7 +83,7 @@ static int rmtree_helper(const char *fpath, const struct stat *sb,
if (unlink(fpath) < 0)
die("Cannot unlink %s: %m", fpath);
}
- return FTW_CONTINUE;
+ return 0;
}
void
@@ -101,7 +101,7 @@ static int chowntree_helper(const char *fpath, const struct stat *sb UNUSED,
if (lchown(fpath, chown_uid, chown_gid) < 0)
die("Cannot chown %s: %m", fpath);
else
- return FTW_CONTINUE;
+ return 0;
}
void
This fixes the bug and gets rid of the glibc-specific behavior, so also fixes your issue.
from isolate.
No worries. If you want to credit me in your commit, you can do git commit --amend
, add a line containing Co-authored-by:
and then push -f on your branch.
from isolate.
Wow, I didn't know you can add multiple authors for a commit. Check this
from isolate.
Thanks for your explanation! It seems you haven't created pr for this, so I made #49. If you mind me creating pr for your suggestion you can always create your own and I'll close mine.
from isolate.
Yes, you are right, it should not have been FTW_CONTINUE. Thanks, fixed.
from isolate.
Related Issues (20)
- isolate doesn't use passed home dir if ran from su HOT 2
- I tried to build a dynamic library and call it with C #, but there was an error HOT 2
- Program finishing but isolate times out on wall clock? HOT 2
- Cannot set memory.limit_in_bytes to 102404096 HOT 4
- Isolate does not configure loopback in the sandbox on my system HOT 10
- thread error with nodejs HOT 2
- Unable to resolve DNS HOT 2
- Failed to create control group /sys/fs/cgroup/memory/box-0/: Read-only file system. HOT 1
- Compiling with gcc, execve("gcc"): No such file or directory HOT 2
- Directory Mount not working ? HOT 1
- Deployment Using AWS Lambda HOT 1
- Whatever I do when I run isolate --init it returns "Error in config file, line 2: Syntax error, expecting key=value" HOT 4
- execve("/usr/local/bin/julia"): No such file or directory HOT 2
- Option for disabling core dumps HOT 3
- Running Java program with a jar file HOT 20
- Thanks for maintaining and building this isolate environment. my question is, is it necessary to use docker for this isolated environment or can I also go with Linux Ec2 in AWS? HOT 1
- Trying to run mysql through .sock HOT 2
- Extra Time option being ignored HOT 2
- Perform custom action before process kill HOT 1
- An error occurred when I compiled with GCC HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from isolate.