Stack-based memory corruption vulnerabilities have long been exploited by attackers to execute arbitrary code or perform unauthorized memory operations. Various defense mechanisms have been introduced to mitigate stack memory errors, but they typically focus on specific attack types, incur substantial performance overhead, or suffer from compatibility limitations.In this paper, we present CleanStack, an efficient, highly compatible, and comprehensive stack protection mech anism. CleanStack isolates stack objects influenced by external input from other safe stack objects, thereby preventing attackers from modifying return addresses via controlled stack objects. Additionally, by randomizing the placement of tainted stack objects within the Unclean Stack, CleanStack mitigates non control data attacks by preventing attackers from predicting the stack layout.A key component of CleanStack is the identifica tion of tainted stack objects. We analyze both static program analysis and heuristic methods for this purpose. To maximize compatibility, we adopt a heuristic approach and implement CleanStack within the LLVM compiler framework, applying it to SPEC CPU2017 benchmarks and a real-world a
Stack canaries and shadow stacks are widely deployed mitigations to memory-safety vulnerabilities. While stack canaries are introduced by the compiler and rely on sentry values placed between variables and control data, shadow stack implementations protect return addresses explicitly and rely on hardware features available in modern processor designs for efficiency. In this paper we hypothesize that stack canaries and shadow stacks provide similar levels of protections against sequential stack-based overflows. Based on the Juliet test suite, we evaluate whether 64-bit x86 (x86-64) systems benefit from enabling stack canaries in addition to the x86-64 shadow stack enforcement. We observe divergence in overflow detection rates between the GCC and Clang compilers and across optimization levels, which we attribute to differences in stack layouts generated by the compilers. We also find that x86-64 shadow stack implementations are more effective and outperform stack canaries when combined with a stack-protector-like stack layout. We implement and evaluate an enhancement to the Clang x86-64 shadow stack instrumentation that improves the shadow stack detection accuracy based on this obser
Inspired by Simpson's de Rham stack and Drinfeld's crystalline stack, we develop a stacky approach to convergent cohomology and convergent isocrystals in positive characteristic. To any scheme $X$ over $\mathbb{F}_p$ we attach a convergent stack $X_{\mathrm{conv}}$. When $X$ is of finite type over a perfect field, its finitely generated quasi-coherent $\mathcal{O}[\tfrac1p]$-modules are equivalent to convergent isocrystals over $X$, compatibly with cohomology. When $X$ embeds into a smooth $p$-adic formal scheme, we describe $X_{\mathrm{conv}}$ explicitly as the quotient of an open tube by a $p$-adic formal groupoid. For $f$-semiperfect schemes, by contrast, the convergent stack is representable by a preperfectoid adic space over $\mathbb{Q}_p$.
Purpose: To investigate the distinct roles of DevOps specialists and general software developers, examining their varying use of tools, technologies, methodologies, and demographics in the current software development environment. In addition, to differentiate these two professional groups regarding their unique contributions and challenges in the field. Design/Methodology/Approach: The research uses a quantitative approach to analyze data from the Stack Overflow 2023 Developer Survey. It focuses on a comparative analysis of technological preferences, demographic information, and professional experiences between DevOps specialists and general developers, highlighting key trends and differences. The data analysis was conducted using Python's Pandas library for data analysis. Findings: The research indicates no significant difference in the tool and technology preferences between DevOps specialists and general software developers, highlighting their complementary roles. DevOps specialists and general software developers use tools like Docker and Kubernetes, emphasizing efficiency and automation. While general developers employ diverse tools for various role demands, demographic trend
This is the first in a series of papers devoted to foundations of topological stacks. We begin developing a homotopy theory for topological stacks along the lines of classical homotopy theory of topological spaces. In this paper we go as far as introducing the homotopy groups and establishing their basic properties. We also develop a Galois theory of covering spaces for a (locally connected semilocally 1-connected) topological stack. Built into the Galois theory is a method for determining the stacky structure (i.e., inertia groups) of covering stacks. As a consequence, we get for free a characterization of topological stacks that are quotients of topological spaces by discrete group actions. For example, this give a handy characterization of good orbifolds. Orbifolds, graphs of groups, and complexes of groups are examples of topological (Deligne-Mumford) stacks. We also show that any algebraic stack (of finite type over $\mathbb{C}$) gives rise to a topological stack. We also prove a Riemann Existence Theorem for stacks. In particular, the algebraic fundamental group of an algebraic stack over $\mathbb{C}$ is isomorphic to the profinite completion of the fundamental group of its u
Multi-stack machines and Turing machines can simulate to each other. In this note, we give a succinct definition of multi-stack machines, and from this definition it is clearly seen that pushdown automata and deterministic finite automata are special cases of multi-stack machines. Also, with this mode of definition, pushdown automata and deterministic pushdown automata are equivalent and recognize all context-free languages. In addition, we are motivated to formulate concise definitions of quantum pushdown automata and quantum stack machines.
We establish the general machinery of string topology for differentiable stacks. This machinery allows us to treat on an equal footing free loops in stacks and hidden loops. In particular, we give a good notion of a free loop stack, and of a mapping stack $\map(Y,\XX)$, where $Y$ is a compact space and $\XX$ a topological stack, which is functorial both in $\XX$ and $Y$ and behaves well enough with respect to pushouts. We also construct a bivariant (in the sense of Fulton and MacPherson) theory for topological stacks: it gives us a flexible theory of Gysin maps which are automatically compatible with pullback, pushforward and products. Further we prove an excess formula in this context. We introduce oriented stacks, generalizing oriented manifolds, which are stacks on which we can do string topology. We prove that the homology of the free loop stack of an oriented stack and the homology of hidden loops (sometimes called ghost loops) are a Frobenius algebra which are related by a natural morphism of Frobenius algebras. We also prove that the homology of free loop stack has a natural structure of a BV-algebra, which together with the Frobenius structure fits into an homological confo
We show that the natural map from the syntomification of a ring $R$ to the stack of $R$-algebra stacks is fully faithful, answering a question of Drinfeld, and we describe its essential image in terms of underlying monoid stacks. We also give similar statements in the characteristic 0 filtered de Rham, $\ell = p$ étale, and Betti settings.
Developers use Question and Answer (Q&A) websites to exchange knowledge and expertise. Stack Overflow is a popular Q&A website where developers discuss coding problems and share code examples. Although all Stack Overflow posts are free to access, code examples on Stack Overflow are governed by the Creative Commons Attribute-ShareAlike 3.0 Unported license that developers should obey when reusing code from Stack Overflow or posting code to Stack Overflow. In this paper, we conduct a case study with 399 Android apps, to investigate whether developers respect license terms when reusing code from Stack Overflow posts (and the other way around). We found 232 code snippets in 62 Android apps from our dataset that were potentially reused from Stack Overflow, and 1,226 Stack Overflow posts containing code examples that are clones of code released in 68 Android apps, suggesting that developers may have copied the code of these apps to answer Stack Overflow questions. We investigated the licenses of these pieces of code and observed 1,279 cases of potential license violations (related to code posting to Stack overflow or code reuse from Stack overflow). This paper aims to raise the a
We introduce the stack-sorting map $\text{SC}_σ$ that sorts, in a right-greedy manner, an input permutation through a stack that avoids some vincular pattern $σ$. The stack-sorting maps of Cerbai et al. in which the stack avoids a pattern classically and Defant and Zheng in which the stack avoids a pattern consecutively follow as special cases. We first characterize and enumerate the sorting class $\text{Sort}(\text{SC}_σ)$, the set of permutations sorted by $s\circ\text{SC}_σ$, for seven length $3$ patterns $σ$. We also decide when $\text{Sort}(\text{SC}_σ)$ is a permutation class. Next, we compute $\max_{π\in \mathfrak S_n}|\text{SC}_σ^{-1}(π)|$ and characterize the periodic points of $\text{SC}_σ$ for several length $3$ patterns $σ$. We end with several conjectures and open problems.
The purpose of this paper and its prequel (Toric Stacks I) is to introduce and develop a theory of toric stacks which encompasses and extends the notions of toric stacks defined in [Laf02, BCS05, FMN10, Iwa09, Sat12, Tyo12], as well as classical toric varieties. While the focus of the prequel is on how to work with toric stacks, the focus of this paper is how to show a stack is toric. For toric varieties, a classical result says that any normal variety with an action of a dense open torus arises from a fan. In [FMN09, Theorem 7.24], it is shown that a smooth separated DM stack with an action of a dense open stacky torus arises from a stacky fan. In the same spirit, the main result of this paper is that any Artin stack with an action of a dense open torus arises from a stacky fan under reasonable hypotheses.
We introduce, on a topological space X, a class of stacks of abelian categories we call "stacks of type P." This class of stacks includes the stack of perverse sheaves (of any perversity, constructible with respect to a fixed stratification), and is singled out by fairly innocuous axioms. We show that some basic structure theory for perverse sheaves holds for a general stack of type P: such a stack is locally equivalent to a MacPherson-Vilonen construction, and under certain connectedness conditions its category of global objects is equivalent to the category of modules over a finite-dimensional algebra. To prove these results we develop a rudimentary tilting formalism for stacks of type P -- another sense in which these stacks are "similar to stacks of perverse sheaves."
A convenient bicategory of topological stacks is constructed which is both complete and Cartesian closed. This bicategory, called the bicategory of compactly generated stacks, is the analogue of classical topological stacks, but for a different Grothendieck topology. In fact, there is an equivalence of bicategories between compactly generated stacks and those classical topological stacks which admit locally compact Hausdorff atlases. Compactly generated stacks are also equivalent to a bicategory of topological groupoids and principal bundles, just as in the classical case. If a classical topological stack and a compactly generated stack have a presentation by the same topological groupoid, then they restrict to the same stack over locally compact Hausdorff spaces and are homotopy equivalent.
We define an $\infty$-category of rational motives for inverse limits of algebraic stacks, so-called pro-algebraic stacks. We show that it admits a $6$-functor formalism for certain classes of morphisms. On pro-schemes, we show that this $6$-functor formalism is in the sense of Liu-Zheng. This theory yields an approach to the theory of motives for non-representable algebraic stacks and non-finite type morphisms.
Modular robotics holds immense potential for space exploration, where reliability, repairability, and reusability are critical for cost-effective missions. Coordination between heterogeneous units is paramount for precision tasks -- whether in manipulation, legged locomotion, or multi-robot interaction. Such modular systems introduce challenges far exceeding those in monolithic robot architectures. This study presents a robust method for synchronizing the trajectories of multiple heterogeneous actuators, adapting dynamically to system variations with minimal system knowledge. This design makes it inherently robot-agnostic, thus highly suited for modularity. To ensure smooth trajectory adherence, the multidimensional state is constrained within a hypersphere representing the allowable deviation. The distance metric can be adapted hence, depending on the task and system under control, deformation of the constraint region is possible. This approach is compatible with a wide range of robotic platforms and serves as a core interface for Motion-Stack, our new open-source universal framework for limb coordination (available at https://github.com/2lian/Motion-Stack ). The method is validat
In this paper, we describe a novel algorithm to create a con- current wait-free stack. To the best of our knowledge, this is the first wait-free algorithm for a general purpose stack. In the past, researchers have proposed restricted wait-free implementations of stacks, lock-free implementations, and efficient universal constructions that can support wait-free stacks. The crux of our wait-free implementation is a fast pop operation that does not modify the stack top; instead, it walks down the stack till it finds a node that is unmarked. It marks it but does not delete it. Subsequently, it is lazily deleted by a cleanup operation. This operation keeps the size of the stack in check by not allowing the size of the stack to increase beyond a factor of W as compared to the actual size. All our operations are wait-free and linearizable.
Proving linearizability of concurrent data structures is crucial for ensuring their correctness, but is challenging especially for implementations that employ sophisticated synchronization techniques. In this paper, we propose a new proof technique for verifying linearizability of concurrent stacks. We first prove the soundness of the elimination mechanism, a common optimization used in concurrent stacks, which enables simplifying the linearizability proofs. We then present a stack theorem that reduces the problem of proving linearizability to establishing a set of conditions based on the happened-before order of operations. The key idea is to use an extended partial order to capture when a pop operation can observe the effect of a push operation. We apply our proof technique to verify two concurrent stack algorithms: the Treiber stack and the Time-Stamped stack, demonstrating its practicality. Our approach provides a systematic and compositional way to prove linearizability of concurrent stacks.
This paper is a continuations of the project initiated in the book string topology for stacks. We construct string operations on the SO(2)-equivariant homology of the (free) loop space $L(X)$ of an oriented differentiable stack $X$ and show that $H^{SO(2)}_{*+dim(X) -2}(L(X))$ is a graded Lie algebra. In the particular case where $X$ is a 2-dimensional orbifold we give a Goldman-type description for the string bracket. To prove these results, we develop a machinery of (weak) group actions on topological stacks which should be of independent interest. We explicitly construct the quotient stack of a group acting on a stack and show that it is a topological stack. Then use its homotopy type to define equivariant (co)homology for stacks, transfer maps, and so on.
In this paper, we consider diffeological spaces as stacks over the site of smooth manifolds, as well as the "underlying" diffeological space of any stack. More precisely, we consider diffeological spaces as so-called concrete sheaves and show that the Grothendieck construction sending these sheaves to stacks has a left adjoint: the functor sending any stack to its diffeological coarse moduli space. As an application, we restrict our attention to differentiable stacks and examine the geometry behind the coarse moduli space construction in terms of Lie groupoids and their principal bundles. Within this context, we define a "gerbe", and show when a Lie groupoid is such a gerbe (or when a stack is represented by one). Additionally, we define basic differential forms for stacks and confirm in the differentiable case that these agree (under certain conditions) with basic differential forms on a representative Lie groupoid. These basic differentiable forms in turn match the diffeological forms on the orbit space.
We study sorting machines consisting of a stack and a pop stack in series, with or without a queue between them. While there are, a priori, four such machines, only two are essentially different: a pop stack followed directly by a stack, and a pop stack followed by a queue and then by a stack. In the former case, we obtain complete answers for the basis and enumeration of the sortable permutations. In the latter case, we present several conjectures.