Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

133
Views
Probar mi software con un sistema de archivos no compatible con mmap

Tengo un fragmento de código que intenta mmap algún archivo. Si puede mmmap el archivo, hace algo, si no puede mmap hace otra cosa.

El código funciona en ambos casos, pero quería hacer algunas pruebas en algún sistema de archivos que no admita mmap. El problema es que no encontré ningún sistema de archivos que no pudiera mmap.

¿Puede alguien señalarme algún sistema de archivos que no sea compatible con mmap?

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Puede simular un sistema no compatible con mmap mediante la interposición de bibliotecas. Simplemente tome este archivo C

 #include <errno.h> #include <sys/mman.h> void* mmap(void*, size_t, int, int, int, off_t) { errno = ENODEV; return NULL; }

y compilarlo en una biblioteca compartida. Nombre la ruta de esa biblioteca en la variable de entorno LD_PRELOAD , y debería tener prioridad sobre el mmap real , simulando así un sistema donde mmap siempre fallará. De esa manera, puede probar su código sin privilegios de superusuario, sin crear ciertos sistemas de archivos y sin tener que tener disponibles los módulos del kernel correspondientes, herramientas de usuario y similares.

En teoría, podría encontrar situaciones en las que alguna biblioteca fuera de su control dependa de tipos específicos de mmap para funcionar siempre. Un mapa con MAP_ANONYMOUS es un excelente ejemplo, ya que no está respaldado por un sistema de archivos y, por lo tanto, no depende de los tipos de FS. Si encuentra algún problema en las bibliotecas que fallan debido a la violación de las suposiciones de mmap, es posible que deba modificar el intercalador para observar más de cerca sus argumentos y reenviar algunas llamadas a la implementación de libc mientras rechaza otras. Pero solo haría esto si realmente surge la necesidad.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!