lkml.org 
[lkml]   [2016]   [Jun]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [kernel-hardening] Re: [PATCH v1 0/2] Introduce the initify gcc plugin
From
Date
On Tue, 2016-06-28 at 18:07 -0400, Valdis.Kletnieks@vt.edu wrote:
> On Tue, 28 Jun 2016 14:49:15 -0700, Joe Perches said:
>
> >
> > Another potentially useful plugin, especially for embedded systems,
> > would be to compress any string literal marked with
> >
> >  __attribute__((format(printf, string-index,)))
> >
> > and decompress the compressed format on the stack in lib/vsprintf.c
> > vsnprintf just before use.
> Are there enough such strings in the kernel to make it worth the effort?
> I'm assuming that the string literals in printk("some string here") are
> automatically so marked?

Yes, that's the concept.

> Is there a minimum length under which the compression overhead actually
> makes it larger?

No, compression would have to be possible, otherwise it'd
be stored directly.  Compression would use a special
"compressed string" header with a 2 byte overhead and
then stored with no trailing \0.

Something like struct compressed_format_header {
u8 flag; /* Must be ASCII STX or "\b" */
u8 length;
}

Depends on the config of course, but it could reduce total
image size ~50k on an x86-32 defconfig


\
 
 \ /
  Last update: 2016-06-29 02:41    [W:0.092 / U:0.460 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site