mirror of
https://github.com/AuxXxilium/kmod.git
synced 2024-11-23 23:10:53 +07:00
libkmod-module: check for NULL before accessing pointers
This introduces a few missing NULL-checks in public functions, and align their docstrings with real behavior by getting rid of copy-paste mistakes. Signed-off-by: Luca Bruno <luca.bruno@coreos.com>
This commit is contained in:
parent
bdf946d2cf
commit
c8f0623ad1
5
TODO
5
TODO
@ -35,6 +35,11 @@ and libkmod
|
|||||||
- kmod_module_symbols_free_list()
|
- kmod_module_symbols_free_list()
|
||||||
- kmod_module_dependency_symbols_free_list()
|
- kmod_module_dependency_symbols_free_list()
|
||||||
|
|
||||||
|
* libkmod API breaking changes:
|
||||||
|
- dedicated error value for all kmod_*_get_crc() functions. Currently there
|
||||||
|
is no way for callers to distinguish between a valid CRC=0 and the error
|
||||||
|
code 0.
|
||||||
|
|
||||||
* index: drop the "open(), seek(), read()" implementation and use another one
|
* index: drop the "open(), seek(), read()" implementation and use another one
|
||||||
with mmap(). When lookup() is called and the file is not mmaped, mmap it.
|
with mmap(). When lookup() is called and the file is not mmaped, mmap it.
|
||||||
Another possibility is to drop the mmap implementation relying on VFS to have
|
Another possibility is to drop the mmap implementation relying on VFS to have
|
||||||
|
@ -2519,7 +2519,7 @@ KMOD_EXPORT const char *kmod_module_version_get_symbol(const struct kmod_list *e
|
|||||||
{
|
{
|
||||||
struct kmod_module_version *version;
|
struct kmod_module_version *version;
|
||||||
|
|
||||||
if (entry == NULL)
|
if (entry == NULL || entry->data == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
version = entry->data;
|
version = entry->data;
|
||||||
@ -2532,14 +2532,13 @@ KMOD_EXPORT const char *kmod_module_version_get_symbol(const struct kmod_list *e
|
|||||||
*
|
*
|
||||||
* Get the crc of a kmod module version.
|
* Get the crc of a kmod module version.
|
||||||
*
|
*
|
||||||
* Returns: the crc of this kmod module version on success or NULL on
|
* Returns: the crc of this kmod module version if available, otherwise default to 0.
|
||||||
* failure. The string is owned by the version, do not free it.
|
|
||||||
*/
|
*/
|
||||||
KMOD_EXPORT uint64_t kmod_module_version_get_crc(const struct kmod_list *entry)
|
KMOD_EXPORT uint64_t kmod_module_version_get_crc(const struct kmod_list *entry)
|
||||||
{
|
{
|
||||||
struct kmod_module_version *version;
|
struct kmod_module_version *version;
|
||||||
|
|
||||||
if (entry == NULL)
|
if (entry == NULL || entry->data == NULL)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
version = entry->data;
|
version = entry->data;
|
||||||
@ -2660,7 +2659,7 @@ KMOD_EXPORT const char *kmod_module_symbol_get_symbol(const struct kmod_list *en
|
|||||||
{
|
{
|
||||||
struct kmod_module_symbol *symbol;
|
struct kmod_module_symbol *symbol;
|
||||||
|
|
||||||
if (entry == NULL)
|
if (entry == NULL || entry->data == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
symbol = entry->data;
|
symbol = entry->data;
|
||||||
@ -2673,14 +2672,13 @@ KMOD_EXPORT const char *kmod_module_symbol_get_symbol(const struct kmod_list *en
|
|||||||
*
|
*
|
||||||
* Get the crc of a kmod module symbol.
|
* Get the crc of a kmod module symbol.
|
||||||
*
|
*
|
||||||
* Returns: the crc of this kmod module symbol on success or NULL on
|
* Returns: the crc of this kmod module symbol if available, otherwise default to 0.
|
||||||
* failure. The string is owned by the symbol, do not free it.
|
|
||||||
*/
|
*/
|
||||||
KMOD_EXPORT uint64_t kmod_module_symbol_get_crc(const struct kmod_list *entry)
|
KMOD_EXPORT uint64_t kmod_module_symbol_get_crc(const struct kmod_list *entry)
|
||||||
{
|
{
|
||||||
struct kmod_module_symbol *symbol;
|
struct kmod_module_symbol *symbol;
|
||||||
|
|
||||||
if (entry == NULL)
|
if (entry == NULL || entry->data == NULL)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
symbol = entry->data;
|
symbol = entry->data;
|
||||||
@ -2806,7 +2804,7 @@ KMOD_EXPORT const char *kmod_module_dependency_symbol_get_symbol(const struct km
|
|||||||
{
|
{
|
||||||
struct kmod_module_dependency_symbol *dependency_symbol;
|
struct kmod_module_dependency_symbol *dependency_symbol;
|
||||||
|
|
||||||
if (entry == NULL)
|
if (entry == NULL || entry->data == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
dependency_symbol = entry->data;
|
dependency_symbol = entry->data;
|
||||||
@ -2819,14 +2817,13 @@ KMOD_EXPORT const char *kmod_module_dependency_symbol_get_symbol(const struct km
|
|||||||
*
|
*
|
||||||
* Get the crc of a kmod module dependency_symbol.
|
* Get the crc of a kmod module dependency_symbol.
|
||||||
*
|
*
|
||||||
* Returns: the crc of this kmod module dependency_symbol on success or NULL on
|
* Returns: the crc of this kmod module dependency_symbol if available, otherwise default to 0.
|
||||||
* failure. The string is owned by the dependency_symbol, do not free it.
|
|
||||||
*/
|
*/
|
||||||
KMOD_EXPORT uint64_t kmod_module_dependency_symbol_get_crc(const struct kmod_list *entry)
|
KMOD_EXPORT uint64_t kmod_module_dependency_symbol_get_crc(const struct kmod_list *entry)
|
||||||
{
|
{
|
||||||
struct kmod_module_dependency_symbol *dependency_symbol;
|
struct kmod_module_dependency_symbol *dependency_symbol;
|
||||||
|
|
||||||
if (entry == NULL)
|
if (entry == NULL || entry->data == NULL)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
dependency_symbol = entry->data;
|
dependency_symbol = entry->data;
|
||||||
@ -2846,7 +2843,7 @@ KMOD_EXPORT int kmod_module_dependency_symbol_get_bind(const struct kmod_list *e
|
|||||||
{
|
{
|
||||||
struct kmod_module_dependency_symbol *dependency_symbol;
|
struct kmod_module_dependency_symbol *dependency_symbol;
|
||||||
|
|
||||||
if (entry == NULL)
|
if (entry == NULL || entry->data == NULL)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
dependency_symbol = entry->data;
|
dependency_symbol = entry->data;
|
||||||
|
Loading…
Reference in New Issue
Block a user