lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:	Wed, 6 May 2015 11:46:56 +0800
From:	"long.wanglong" <long.wanglong@...wei.com>
To:	<torvalds@...ux-foundation.org>
CC:	<jay.foad@...il.com>, <cwhuang@...roid-x86.org>,
	<akpm@...ux-foundation.org>, <kirill.shutemov@...ux.intel.com>,
	<riel@...hat.com>, <sasha.levin@...cle.com>,
	Michal Hocko <mhocko@...e.cz>, <dave@...olabs.net>,
	<koct9i@...il.com>, <luto@...capital.net>, <pfeiner@...gle.com>,
	<dh.herrmann@...il.com>, <vishnu.ps@...sung.com>,
	<linux-mm@...ck.org>,
	"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
	Wang Kai <morgan.wang@...wei.com>,
	peifeiyue <peifeiyue@...wei.com>, <linux-arch@...r.kernel.org>,
	<jengelh@...i.de>, "wang long" <long.wanglong@...wei.com>
Subject: [RFC] kernel random segmentation fault?

Hi all:

I meet a kernel problem about the random segmentation fault(x86_64). In my testcase, the size of local variables exceeds 20MB.
when run the testcase, it will cause segmentation fault(because the default stack size limit is 8192KB).
when I increase the stack size limit to 1024000KB(ulimit -s 1024000), the testcase will pass.

But when I run the testcase 100 times, it will cause random segmentation fault.

Maybe the commit fee7e49d45149fba60156f5b59014f764d3e3728  "mm: propagate error from stack expansion even for guard page"
cause this problems, when I revert it, the testcase will not cause random segmentation fault problem.

Can anyone give some ideas about this problem?

Best Regards
Wang Long

############ Test Environment #############

# uname -a
Linux ivybridge 4.1.0-rc2+ #3 SMP PREEMPT Wed May 6 10:46:57 CST 2015 x86_64 x86_64 x86_64 GNU/Linux


############  The Testcase ################

#include <stdio.h>
#include <stdlib.h>
#include <sys/resource.h>

#define KB *1024
#define MB *(1024*1024)
#define GB *(1024*1024*1024)

int main(int argc, char** argv)
{
    int ret;
    struct rlimit rlim;

    rlim.rlim_cur=20 MB;
    rlim.rlim_max=20 MB;
    ret = setrlimit(RLIMIT_AS, &rlim);
    if ( 0 > ret)
    {
        perror("setrlimit failed");
        exit(1);
    }

    printf("setrlimit success\n");

    char tmp[20 MB];
    int i = 0;

    for (i = 0; i < 20 MB; i++)
    {
        tmp[i]=1;
    }

    printf("test success\n");
    exit(1);
}

# My config


-- 
1.8.3.4


.




View attachment "config" of type "text/plain" (92190 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ