I don't think the question is why it fails. I think we all agree the
snippet posted by Elena should fail. But what I still don't understand is
why the addition of a entry to an fc without a newline causes the build
error to finally manifest.

We should also update all the device policies so they have a newline in
AOSP so the examples are correct.

On Thu, Dec 3, 2015, 9:15 AM Stephen Smalley <[email protected]> wrote:

> On 12/03/2015 09:02 AM, Stephen Smalley wrote:
> > On 12/03/2015 05:07 AM, Elena Reshetova wrote:
> >> Hi guys,
> >>
> >> I have been investigating a really weird issue and want to ask if you
> >> know what might go wrong.
> >> So, normally file_contexts file is composed from the
> >> external/sepolicy/file_contexts and OEM modifications that can be
> >> declared in different places in file_contexts files, but joined using
> >> the BOARD_SEPOLICY_DIRS. For example:
> >> BOARD_SEPOLICY_DIRS += device/intel/sepolicy/bla/xyz
> >>
> >> All is good and it worked for ages, but now it works strangely on one
> >> (and only one) particular addition in file_contexts like this:
> >>
> >> /dev/xyz u:object_r:xyz_device:s0
> >>
> >> Important part here is that there is no newline at the end of the above
> >> line (which is quite normal and the same for many other similar
> >> file_contexts file).
> >>
> >> So, what happens is that line gets added to the resulted file_contexts
> >> there is a no newline after and the next addition to file_contexts get
> >> written to the same line (straight after the label). So, in the
> >> resulting file_contexts we have:
> >>
> >> /dev/xyz u:object_r:xyz_device:s0#Additional file_contexts
> >>
> >> Where "#Additional file_contexts"  is the first line  of another
> >> file_contexts file that happens to be added after.
> >>
> >> Of course selinux has an issue with the above label, so it complains:
> >>
> >> out/target/product/bla/root/file_contexts: line 721 has invalid file
> >> type u:object_r:xyz_device:s0#
> >> out/target/product/bla/root/file_contexts: line 721 has invalid file
> >> type u:object_r:xyz_device:s0#
> >> out/target/product/bla/root/file_contexts: line 721 has invalid file
> >> type u:object_r:xyz_device:s0#
> >> out/target/product/bla/root/file_contexts: line 721 has invalid file
> >> type u:object_r:xyz_device:s0#
> >>
> >> Any ideas why this happens?
> >
> > I don't see why this would ever work (I just tried with 5.1.1 and it
> > failed there too).  m4 (or cat) doesn't insert newlines automatically
> > between input files, so if you do not newline-terminate your files, they
> > will get munged in this way.
>
> Oh, I see - this didn't become a hard error at build time until:
> https://android-review.googlesource.com/#/c/163570
>
> But it is wrong regardless and will cause that line to get ignored at
> runtime.
> _______________________________________________
> Seandroid-list mailing list
> [email protected]
> To unsubscribe, send email to [email protected].
> To get help, send an email containing "help" to
> [email protected].
>
_______________________________________________
Seandroid-list mailing list
[email protected]
To unsubscribe, send email to [email protected].
To get help, send an email containing "help" to 
[email protected].

Reply via email to