cregit-Linux how code gets into the kernel

Release 4.12 lib/list_debug.c

Directory: lib
/*
 * Copyright 2006, Red Hat, Inc., Dave Jones
 * Released under the General Public License (GPL).
 *
 * This file contains the linked list validation for DEBUG_LIST.
 */

#include <linux/export.h>
#include <linux/list.h>
#include <linux/bug.h>
#include <linux/kernel.h>
#include <linux/rculist.h>

/*
 * Check that the data structures for the list manipulations are reasonably
 * valid. Failures here indicate memory corruption (and possibly an exploit
 * attempt).
 */


bool __list_add_valid(struct list_head *new, struct list_head *prev, struct list_head *next) { if (CHECK_DATA_CORRUPTION(next->prev != prev, "list_add corruption. next->prev should be prev (%p), but was %p. (next=%p).\n", prev, next->prev, next) || CHECK_DATA_CORRUPTION(prev->next != next, "list_add corruption. prev->next should be next (%p), but was %p. (prev=%p).\n", next, prev->next, prev) || CHECK_DATA_CORRUPTION(new == prev || new == next, "list_add double add: new=%p, prev=%p, next=%p.\n", new, prev, next)) return false; return true; }

Contributors

PersonTokensPropCommitsCommitProp
Dave Jones5058.82%342.86%
Kees Cook1821.18%342.86%
Chris Metcalf1720.00%114.29%
Total85100.00%7100.00%

EXPORT_SYMBOL(__list_add_valid);
bool __list_del_entry_valid(struct list_head *entry) { struct list_head *prev, *next; prev = entry->prev; next = entry->next; if (CHECK_DATA_CORRUPTION(next == LIST_POISON1, "list_del corruption, %p->next is LIST_POISON1 (%p)\n", entry, LIST_POISON1) || CHECK_DATA_CORRUPTION(prev == LIST_POISON2, "list_del corruption, %p->prev is LIST_POISON2 (%p)\n", entry, LIST_POISON2) || CHECK_DATA_CORRUPTION(prev->next != entry, "list_del corruption. prev->next should be %p, but was %p\n", entry, prev->next) || CHECK_DATA_CORRUPTION(next->prev != entry, "list_del corruption. next->prev should be %p, but was %p\n", entry, next->prev)) return false; return true; }

Contributors

PersonTokensPropCommitsCommitProp
Dave Jones3737.76%228.57%
Linus Torvalds2525.51%114.29%
Kees Cook2020.41%342.86%
Baruch Siach1616.33%114.29%
Total98100.00%7100.00%

EXPORT_SYMBOL(__list_del_entry_valid);

Overall Contributors

PersonTokensPropCommitsCommitProp
Dave Jones10349.05%428.57%
Kees Cook4220.00%428.57%
Linus Torvalds2511.90%17.14%
Chris Metcalf178.10%17.14%
Baruch Siach167.62%17.14%
Paul Gortmaker73.33%321.43%
Total210100.00%14100.00%
Directory: lib
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.