bad_stat

bad_stat - common_badbuf(statfunc, INVAL_PTR, call,...

Info iconThis preview shows pages 1–2. Sign up to view the full content.

View Full Document Right Arrow Icon
/* * Bad calls to fstat, lstat, and stat */ #include <sys/types.h> #include <sys/stat.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <errno.h> #include <err.h> #include "config.h" #include "test.h" //////////////////////////////////////////////////////////// static int badbuf_fstat(struct stat *sb) { return fstat(STDIN_FILENO, sb); } static int badbuf_lstat(struct stat *sb) { return lstat("null:", sb); } static int badbuf_stat(struct stat *sb) { return stat("null:", sb); } static void common_badbuf(int (*statfunc)(struct stat *), void *ptr, const char *call, const char *ptrdesc) { int rv; char mydesc[128]; snprintf(mydesc, sizeof(mydesc), "%s with %s buf", call, ptrdesc); rv = statfunc(ptr); report_test(rv, errno, EFAULT, mydesc); } static void any_badbuf(int (*statfunc)(struct stat *), const char *call) { common_badbuf(statfunc, NULL, call, "NULL");
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Background image of page 2
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: common_badbuf(statfunc, INVAL_PTR, call, &quot;invalid pointer&quot;); common_badbuf(statfunc, KERN_PTR, call, &quot;kernel pointer&quot;); } //////////////////////////////////////////////////////////// static void any_empty(int (*statfunc)(const char *, struct stat *), const char *call) { struct stat sb; char desc[128]; int rv; snprintf(desc, sizeof(desc), &quot;%s on empty string&quot;, call); rv = statfunc(&quot;&quot;, &amp;sb); report_test2(rv, errno, 0, EINVAL, desc); } //////////////////////////////////////////////////////////// void test_fstat(void) { test_fstat_fd(); any_badbuf(badbuf_fstat, &quot;fstat&quot;); } void test_lstat(void) { test_lstat_path(); any_empty(lstat, &quot;stat&quot;); any_badbuf(badbuf_lstat, &quot;lstat&quot;); } void test_stat(void) { test_stat_path(); any_empty(stat, &quot;stat&quot;); any_badbuf(badbuf_stat, &quot;stat&quot;); }...
View Full Document

Page1 / 2

bad_stat - common_badbuf(statfunc, INVAL_PTR, call,...

This preview shows document pages 1 - 2. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online