����JFIF���������
__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
// SPDX-License-Identifier: GPL-2.0
/*
* Helper function for splitting a string into an argv-like array.
*/
#include <stdlib.h>
#include <linux/kernel.h>
#include <linux/ctype.h>
#include <linux/string.h>
static const char *skip_arg(const char *cp)
{
while (*cp && !isspace(*cp))
cp++;
return cp;
}
static int count_argc(const char *str)
{
int count = 0;
while (*str) {
str = skip_spaces(str);
if (*str) {
count++;
str = skip_arg(str);
}
}
return count;
}
/**
* argv_free - free an argv
* @argv - the argument vector to be freed
*
* Frees an argv and the strings it points to.
*/
void argv_free(char **argv)
{
char **p;
for (p = argv; *p; p++) {
free(*p);
*p = NULL;
}
free(argv);
}
/**
* argv_split - split a string at whitespace, returning an argv
* @str: the string to be split
* @argcp: returned argument count
*
* Returns an array of pointers to strings which are split out from
* @str. This is performed by strictly splitting on white-space; no
* quote processing is performed. Multiple whitespace characters are
* considered to be a single argument separator. The returned array
* is always NULL-terminated. Returns NULL on memory allocation
* failure.
*/
char **argv_split(const char *str, int *argcp)
{
int argc = count_argc(str);
char **argv = calloc(argc + 1, sizeof(*argv));
char **argvp;
if (argv == NULL)
goto out;
if (argcp)
*argcp = argc;
argvp = argv;
while (*str) {
str = skip_spaces(str);
if (*str) {
const char *p = str;
char *t;
str = skip_arg(str);
t = strndup(p, str-p);
if (t == NULL)
goto fail;
*argvp++ = t;
}
}
*argvp = NULL;
out:
return argv;
fail:
argv_free(argv);
return NULL;
}
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| api | Folder | 0755 |
|
|
| bpf | Folder | 0755 |
|
|
| lockdep | Folder | 0755 |
|
|
| perf | Folder | 0755 |
|
|
| subcmd | Folder | 0755 |
|
|
| symbol | Folder | 0755 |
|
|
| argv_split.c | File | 1.68 KB | 0644 |
|
| bitmap.c | File | 2.88 KB | 0644 |
|
| ctype.c | File | 1.34 KB | 0644 |
|
| find_bit.c | File | 2.98 KB | 0644 |
|
| hweight.c | File | 1.77 KB | 0644 |
|
| list_sort.c | File | 7.82 KB | 0644 |
|
| rbtree.c | File | 16.09 KB | 0644 |
|
| slab.c | File | 664 B | 0644 |
|
| str_error_r.c | File | 1.01 KB | 0644 |
|
| string.c | File | 4.65 KB | 0644 |
|
| vsprintf.c | File | 900 B | 0644 |
|
| zalloc.c | File | 197 B | 0644 |
|