Verification of Unloadable C Modules ( Extended

نویسندگان

  • Bart Jacobs
  • Jan Smans
  • Frank Piessens
چکیده

Programs in unsafe languages, like C and C++, may dynamically load and unload modules. For example, some operating system kernels support dynamic loading and unloading of device drivers. This causes specific difficulties in the verification of such programs and modules; in particular, it must be verified that no functions or global variables from the module are used after the module is unloaded. We present the approach we used to add support for loading and unloading modules to our separation-logic-based program verifier VeriFast. Our approach to the specification and verification of function pointer calls, based on parameterizing function types by predicates, is sound in the presence of unloading, but at the same time does not complicate the verification of programs that perform no unloading, and does not require callers to distinguish between function pointers that point into unloadable modules and ones that do not. We offer a machine-checked formalization and soundness proof and we report on verifying a small kernel-like program using VeriFast. To the best of our knowledge, ours is the first approach for sound modular verification of C programs that load and unload modules. Verification of Unloadable Modules

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Verification of Unloadable C Modules—Status Report

C programs may dynamically load and unload modules. For example, some operating system kernels support dynamic loading and unloading of device drivers. This causes specific difficulties in the verification of such programs and modules; in particular, it must be verified that no functions or global variables from the module are used after the module is unloaded. We propose a separation-logic-bas...

متن کامل

Verification of Unloadable C Modules—Soundness Proof

C programs may dynamically load and unload modules. For example, some operating system kernels support dynamic loading and unloading of device drivers. This causes specific difficulties in the verification of such programs and modules; in particular, it must be verified that no functions or global variables from the module are used after the module is unloaded. We propose a separation-logic-bas...

متن کامل

Verification of Unloadable Modules

Programs in unsafe languages, like C and C++, may dynamically load and unload modules. For example, some operating system kernels support dynamic loading and unloading of device drivers. This causes specific difficulties in the verification of such programs and modules; in particular, it must be verified that no functions or global variables from the module are used after the module is unloaded...

متن کامل

G-frames and their duals for Hilbert C*-modules

Abstract. Certain facts about frames and generalized frames (g- frames) are extended for the g-frames for Hilbert C*-modules. It is shown that g-frames for Hilbert C*-modules share several useful properties with those for Hilbert spaces. The paper also character- izes the operators which preserve the class of g-frames for Hilbert C*-modules. Moreover, a necessary and suffcient condition is ob- ...

متن کامل

Free Extended BCK-Module

In this paper, by considering the notion of extended BCK-module, we define the concepts of free extended BCK-module, free object in category of extended BCK-modules and we state and prove some related results. Specially, we define the notion of idempotent extended BCK-module and we get some important results in free extended BCK-modules. In particular, in category of idempotent extended BCK-mod...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2011