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)
- "No such file or directory" issue when trying to run C# program using Dotnet HOT 7
- Memory corruption bug in cg_init HOT 2
- C# program failed to compile using mcs - error CS2001: Source file `Main.cs' could not be found HOT 1
- make install exited with error code 1. HOT 1
- Error Running isolate in Ubuntu:22.04 with Systemd HOT 10
- Support for Docker HOT 12
- Error using isolate HOT 15
- Assertion Failure Issue HOT 4
- --as-uid and --as-gid seem to be not usable in Docker container HOT 3
- Cannot set disk quota: No such process HOT 1
- chown: cannot access /var/local/lib/isolate/XX/box': No such file or directory HOT 6
- CPU time (--time) consumed in subsequent runs in the same box with cg (cgroup2) enabled HOT 15
- Limitation on number of sandboxes HOT 1
- [Query] Isolate Mac OS setup HOT 1
- Unable to build manual HOT 3
- CGoups not found HOT 5
- isolate: unrecognized option '--cg-timing' and annot open /run/isolate/cgroup: No such file or directory HOT 2
- Cannot create subgroup /sys/fs/cgroup/isolate.slice/isolate.service/daemon: No such file or directory HOT 12
- Memory access violation leads to different outcomes in different envrionments HOT 2
- Measuring time and memory usage with --cg option 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.