Questions tagged [stack]

The tag has no usage guidance.

Filter by
Sorted by
Tagged with
0 votes
1 answer
161 views

Pactical limits to `ulimit -s 1048576`?

Linux allows ulimit -s unlimited, which allows programs to exhaust system memory and crash the computer. So, generally no good. But what are the drawbacks to a significantly higher limit to the ...
  • 113
1 vote
1 answer
233 views

How do I change the destination IP of all outgoing packets (especially DNS)?

I have a Raspberry Pi 4 with the latest build of (Debian) raspberry pi OS. I am trying to configure iptables to redirect all traffic coming from the Pi (with ) to another machine (lets say with an IP ...
  • 31
1 vote
1 answer
121 views

What purpose does ELF's stack-size metadata have?

I was reading the Rust Unstable Book, and I saw a new feature for emit-stack-sizes, The rustc flag -Z emit-stack-sizes makes LLVM emit stack size metadata. It goes on to say NOTE: This LLVM feature ...
1 vote
1 answer
86 views

How to get linux stack bounds?

How can I get the address bounds of the Linux stack using syscalls without resorting to using exception handlers? I can get the stack size using getrlimit, but it doesn't say where the stack starts ...
  • 11
0 votes
1 answer
193 views

Why is Linux stack size limit so low on 64-bit machines?

As far as I know the Linux stack size limit is 8 MB, but on 64-bit machines there's no reason why it couldn't be massively increased, e.g. to 4 GB. This would allow programmers to mostly not worry ...
  • 496
4 votes
2 answers
735 views

Why is the stack argument required for the clone wrapper?

I've been carefully reading the linux man page for clone(), and I understand the difference between the clone() wrapper and the "raw" system call. But what I don't understand is why the ...
0 votes
2 answers
268 views

To get in variable, a directory've been pushd [duplicate]

How do I use, i.e. to have in bash variable, a directory just've been pushd, and not to do popd command ?
1 vote
2 answers
102 views

Where are the files related to the stack on a Unix OS?

I am running Arch Linux, 64bit latest update on one of my computers. I am currently a Computer Science student and we had a test yesterday where we were to implement a dynamic stack using linked lists....
  • 153
0 votes
1 answer
5k views

rhel 7 setting stack size to unlimited

I have some old code that needs the stack to not be limited to 8192kb in order for it to run. I am used to doing this in /etc/security/limits.conf * stack hard unlimited * stack soft ...
  • 5,225
3 votes
1 answer
612 views

Unlimited stack size with pthreads

My default stack size (according to ulimit -s) is 8192 kB, so naturally the code below segfaults when I try to run it. Also, naturally, it works fine if I do a 'ulimit -s 9000'. However, when I do a '...
0 votes
1 answer
21 views

Sequence of events and OS involvement when a process goes beyond its allocated stack

My understanding is that the Linux kernel allocates a stack to every process before it starts, and this initial size is configurable. A process can PUSH data to the stack directly via CPU instructions,...
  • 1,644
0 votes
1 answer
56 views

Arbitrary code execution despite Data Execution Prevention

Nowadays with protections like W^X , is it still possible to successfully exploit buffer overflows with for example NOP Slide ?
5 votes
1 answer
248 views

Why does bash's tab completion trigger the stack protector?

I'm using bash 5.0.16 (and bash-completion 2.10) on Manjaro. Today, I absentmindedly hit the tab key while moving some files, and was greeted with an unexpected message: [charles@wirepile some_dir]$ ...
2 votes
1 answer
251 views

Is it safe to use the .bss section as a static stack?

(This is in the context of x86-64 Linux.) I am trying to write a high-reliability userland executable, and I have total control over the generated assembly. I don't want to rely on automatic stack ...
1 vote
1 answer
3k views

How to view Stack Trace of a process?

I have seen this answer and according to that Stack Trace can be seen like: $ cat /proc/<PID>/stack [<ffffffff81012b72>] save_stack_trace_tsk+0x22/0x40 [<ffffffff81213abe>] ...
  • 113
1 vote
1 answer
785 views

What data structure is the stack using in Linux?

I have looked in several places such as here but none explain in detail the structs used for implementing the stack itself (the place where "tasks" (processes/threads) store their nested call ...
  • 407
3 votes
1 answer
643 views

Are stack canaries shared via threads?

As far as I understand, stack canaries work as fllows: Upon program startup a random value is generated and stored in the thread local storage (%fs:0x28). This random value is then pushed onto the ...
10 votes
2 answers
4k views

How does the ELF loader determine the initial stack size?

I'm studying the ELF specification (http://www.skyfree.org/linux/references/ELF_Format.pdf), and one point that is not clear to me about the program loading process is how the stack is initialized, ...
1 vote
1 answer
468 views

AIX process stack watermark

Does exist any tool/command for checking the maximum that a process stack has used? I need that to tune the stack size configuration for a program.
1 vote
1 answer
2k views

How does Linux Kernel switches from kernel stack to interrupt stack?

What happens when a user mode task is interrupted ? I know for a fact that the CPU switches to the kernel mode stack by refring the TSS. But when and how does the kernel switches to the IRQ stack?
13 votes
2 answers
16k views

Why on modern Linux, the default stack size is so huge - 8MB (even 10 on some distributions)

For example, on OSX, it's even less than 512k. Is there any recommended size, having in mind, that the app does not use recursion and does not allocate a lot of stack variables? I know the question ...
20 votes
2 answers
8k views

What sets fs:[0x28] (stack canary)?

From this post it is shown that FS:[0x28] is a stack-canary. I'm generating that same code using GCC on this function, void foo () { char a[500] = {}; printf("%s", a); } Specifically, I'm ...
2 votes
1 answer
3k views

pstack not printing stack output [closed]

I am running pstack to find function stack for my application running on two machines (both RHEL) In one of my machine it is working as expected [root@civ4cez191 bin]# pstack 22947 Thread 2 (Thread ...
  • 121
1 vote
0 answers
245 views

How can I find the deepest and most stack-hungry call chains in a program?

I have a program written in OCaml that tends to stack-overflow on platforms with small stacks. Rather than ulimiting the program to find and solve stack overflows one by one, I'd like to get a sorted ...
  • 522
1 vote
1 answer
6k views

GDB command to print the address of starting of buffer (stack)

For gdb debugger (gdb) p &buffer This command is used to print the content of starting of buffer (stack), or print the address? If it is content, how to print the address?
  • 153
-1 votes
2 answers
914 views

fork() and execve() efficiency [closed]

In terms of memory allocation efficiency is it right to say that after a fork() in the code of the child if I execute a program with execve() this would be more efficient than the same program ...
4 votes
1 answer
7k views

program stack size

I learned default stack size for each process is limited to 8MB and mmap_base is calculated based on stack size in rlimit and random value. Code below is mmap_base function which calculates mmap_base ...
0 votes
1 answer
1k views

Top: DATA = RES + stack + what?

I've analyzed memory consumption of a java program on Linux Mint. I used top to capture memory statistics (memory used by program and also system-wide indicators like total_mem_used and mem_free). The ...
  • 101
1 vote
1 answer
365 views

Could the stack be swapped to disk on Linux and can it be prevented

On Linux, is it possible that memory pages that contain the process stack get swapped to disk? If so, is there a way to prevent that, either at compile time or at runtime. I'm asking because of a ...
  • 271
4 votes
2 answers
1k views

Memory Randomization in Linux

I created a simple C program and every time I load it in GDB, I see the same memory addresses allocated to the instructions of the program. For example, a function what() always loads at memory ...
  • 1,094
1 vote
1 answer
979 views

What is the relationship between the stack and the process table?

According to Wikipedia and many other sources, Since PCB contains the critical information for the process, it must be kept in an area of memory protected from normal user access. In some ...
2 votes
1 answer
708 views

Why must the stack VMA be executable?

I am currently reading Linux Kernel Development by Robert Love. In the chapter "15 The Process Address Space" he prints the memory map of a process. user@machine:~$ pmap 1424 #all the processes ...
1 vote
1 answer
114 views

Can you translate stack data? What is the data? [closed]

What I want to know is how is the data in a stack translated. We can see the data like: 0x80808080 but does it have a meaning? What parts of the numbers stand for something different? And what does '...
1 vote
1 answer
102 views

bash - isolating uppercase words

So, I have a directory containing around 50 directories having for name 3 letter uppercase words: AXC BCC EFC amongst other directories. I have already done a find to seek these 3 letter directories ...
2 votes
2 answers
769 views

Main stacks in Linux

What are the main stacks in Linux? What I mean is, for example when an interrupt occurs what stack will be used for it, and what is the difference between user process and kernel process stacks?
0 votes
1 answer
72 views

Match the three columns in 2 annotation files and print those lines to a new output file

I have 2 files, file 1 and file 2 with the same column numbers. Column one has the chromosome number, column two has the promoter start site and column three has the promoter stop site. I want to ...
  • 1
-1 votes
2 answers
145 views

First match if we are on the first line of input, if so print the whole line, else print the first word followed by a comma

for eg: CREATE TABLE MWWDATA.ACK997 ( AKTYPE CHAR(2) DEFAULT '' NOT NULL , AKNUM CHAR(9) DEFAULT '' NOT NULL ); CREATE TABLE MWWDATA.APREIDEXC ( EMPLID NUMBER(15, 0) DEFAULT NULL ); I ...
  • 23
0 votes
3 answers
86 views

i want to print the line which starts with a paricular word and in the rest records print only 1st field

for eg: CREATE TABLE MWWDATA."VTCat02" ( "ID" NUMBER(10) DEFAULT NULL , "Cat" VARCHAR2(255) DEFAULT NULL , "Style_Code" VARCHAR2(255) DEFAULT NULL , "Vendor_Style_#" VARCHAR2(255) ...
  • 23
0 votes
1 answer
565 views

I want to delete from particular words in all the line if that particular word is present

eg: CREATE VIEW AIPKEYITEM.SEASONGROUPNETSALES ( CALENDARID , PRODUCTGROUPID FOR COLUMN PRDGRPID , NETSALESDOLLARS FOR COLUMN NETSA00001 , NETSALESUNITS FOR COLUMN NETSA00002 ) AS SELECT ...
  • 23
12 votes
1 answer
23k views

How can I monitor per process/per thread memory consumption (divided into heap, stack, data, code)?

Before jumping in and writing my own code, I want to find out if there is GNU/Linux software that is able to output something similar to QNX's showmem. For each thread of each process that is running,...
  • 121
21 votes
3 answers
22k views

How does stack allocation work in Linux?

Does the OS reserve the fixed amount of valid virtual space for stack or something else? Am I able to produce a stack overflow just by using big local variables? I've wrote a small C program to test ...
  • 472
2 votes
1 answer
4k views

Ulimit unlimited stack behavior oddity

I am running an application on a Solaris 10 system. Yesterday we have set the process stack size to unlimited: ulimit -s unlimited Today during the load the process would not come up reporting that ...
  • 5,815