Code Monkey home page Code Monkey logo

Comments (2)

dimakuv avatar dimakuv commented on September 3, 2024

Currently in Gramine we return those weird strings via readlink()

In particular, this code does it:

* Human-readable string for a handle without attached dentry.
*
* TODO: Linux uses names like `pipe:[INODE]`, we could at least include more information whenever
* we can (e.g. socket address).
*/
static char* describe_handle(struct libos_handle* hdl) {
const char* str;
switch (hdl->type) {
case TYPE_CHROOT: str = "chroot:[?]"; break;
case TYPE_DEV: str = "dev:[?]"; break;
case TYPE_STR: str = "str:[?]"; break;
case TYPE_PSEUDO: str = "pseudo:[?]"; break;
case TYPE_PIPE: str = "pipe:[?]"; break;
case TYPE_SOCK: str = "sock:[?]"; break;
case TYPE_EPOLL: str = "epoll:[?]"; break;
case TYPE_EVENTFD: str = "eventfd:[?]"; break;
case TYPE_SHM: str = "shm:[?]"; break;
default: str = "unknown:[?]"; break;
}
return strdup(str);
}

However, there is no inode information, just a hard-coded [?]. That's not ideal; but probably real-world apps don't care and don't use the inode numbers like this.

We probably need a new type of dentry for these fake links, or some special flag which would prevent the path resolver from following them.

I am afraid we'll have to introduce proper dentry objects for these (well, without any real path, but still pointing to a valid inode). Otherwise this will become full of special cases. At the same time, this will probably a big change, and I'd say it's not worth it unless we have a real app (that cannot circumvent this limitation).

from gramine.

dimakuv avatar dimakuv commented on September 3, 2024

At the same time, this will probably a big change, and I'd say it's not worth it unless we have a real app (that cannot circumvent this limitation).

I take my words back. We already have such an application, and it is Bash: #1267

So maybe implementing it should be a higher priority.

from gramine.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.