struct dirent related hooks incorrectly bound to those from glibc directly

Bug #1596772 reported by You-Sheng Yang on 2016-06-28
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Canonical System Image
Critical
Unassigned
libhybris
Critical
Simon Fels

Bug Description

Android Bionic defines struct dirent to utilize 64 bit d_ino/d_off fields in all architectures, which is not the case in glibc. Current statuses of calls related to struct dirent are:

  * readdir, readdir_r: hooked with special care to d_ino/d_off fields
  * scandir, scandir64: hooked directly to glibc calls
  * readdir64 (5.0+), readdir64_r (5.0+), alphasort, alphasort64: not hooked
  * scandirat (n-preview+), scandirat64 (n-preview+): not hooked

So some calls are commonly available starting at least from AOSP 4.4 but are either not hooked or hooked direct to glibc calls. readdir is one of the them that causes segmentation fault in Midori.

See: https://wiki.canonical.com/PES/Engineering/Premium/PhoneArticles/PhoneBringUpSteps/CheckHybrisWorkable

You-Sheng Yang (vicamo) on 2016-06-28
description: updated
Simon Fels (morphis) on 2016-06-28
Changed in libhybris:
importance: Undecided → Critical
assignee: nobody → Simon Fels (morphis)
status: New → In Progress
Bin Li (binli) wrote :

I made a new MP for the libhybris-maintainer's branch.

https://code.launchpad.net/~binli/libhybris/+git/libhybris/+merge/298514

Changed in canonical-devices-system-image:
status: New → In Progress
Simon Fels (morphis) on 2016-07-11
Changed in libhybris:
status: In Progress → Fix Committed
Changed in canonical-devices-system-image:
milestone: none → 13
importance: Undecided → Critical
assignee: nobody → John McAleely (john.mcaleely)
Changed in canonical-devices-system-image:
milestone: 13 → x1
Changed in canonical-devices-system-image:
assignee: John McAleely (john.mcaleely) → nobody
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers