suricata
util-path.c File Reference
#include "suricata-common.h"
#include "suricata.h"
#include "util-debug.h"
#include "util-path.h"
Include dependency graph for util-path.c:

Go to the source code of this file.

Macros

#define DIRECTORY_SEPARATOR   '/'
 

Functions

int PathIsAbsolute (const char *path)
 Check if a path is absolute. More...
 
int PathIsRelative (const char *path)
 Check if a path is relative. More...
 
int PathMerge (char *out_buf, size_t buf_size, const char *const dir, const char *const fname)
 
char * PathMergeAlloc (const char *const dir, const char *const fname)
 
int SCDefaultMkDir (const char *path)
 Wrapper around SCMkDir with default mode arguments. More...
 
int SCCreateDirectoryTree (const char *path, const bool final)
 Recursively create a directory. More...
 
bool SCPathExists (const char *path)
 Check if a path exists. More...
 
bool SCIsRegularDirectory (const struct dirent *const dir_entry)
 OS independent wrapper for directory check. More...
 
bool SCIsRegularFile (const struct dirent *const dir_entry)
 OS independent to check for regular file. More...
 
char * SCRealPath (const char *path, char *resolved_path)
 OS independent wrapper for realpath. More...
 
const char * SCBasename (const char *path)
 
bool SCPathContainsTraversal (const char *path)
 Check for directory traversal. More...
 
FILE * SCFopenLogFile (const char *path, const char *mode)
 Open a text log file for append or truncate. More...
 
int SCTouchFile (const char *path)
 Update access and modification time of an existing file to 'now'. More...
 

Detailed Description

Author
Victor Julien victo.nosp@m.r@in.nosp@m.linia.nosp@m.c.ne.nosp@m.t

Definition in file util-path.c.

Macro Definition Documentation

◆ DIRECTORY_SEPARATOR

#define DIRECTORY_SEPARATOR   '/'

Definition at line 35 of file util-path.c.

Function Documentation

◆ PathIsAbsolute()

int PathIsAbsolute ( const char *  path)

Check if a path is absolute.

Parameters
pathstring with the path
Return values
1absolute
0not absolute

Definition at line 45 of file util-path.c.

Referenced by PathIsRelative(), SCConfLogOpenGeneric(), SCConfYamlHandleInclude(), SCProfilingKeywordsGlobalInit(), SCProfilingPrefilterGlobalInit(), and SCProfilingSghsGlobalInit().

Here is the caller graph for this function:

◆ PathIsRelative()

int PathIsRelative ( const char *  path)

Check if a path is relative.

Parameters
pathstring with the path
Return values
1relative
0not relative

Definition at line 70 of file util-path.c.

References PathIsAbsolute().

Here is the call graph for this function:

◆ PathMerge()

int PathMerge ( char *  out_buf,
size_t  buf_size,
const char *const  dir,
const char *const  fname 
)

Definition at line 75 of file util-path.c.

References strlcat(), and strlcpy().

Referenced by PathMergeAlloc().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ PathMergeAlloc()

char* PathMergeAlloc ( const char *const  dir,
const char *const  fname 
)

Definition at line 108 of file util-path.c.

References PathMerge(), and SCStrdup.

Here is the call graph for this function:

◆ SCBasename()

const char* SCBasename ( const char *  path)

Definition at line 247 of file util-path.c.

References DIRECTORY_SEPARATOR.

◆ SCCreateDirectoryTree()

int SCCreateDirectoryTree ( const char *  path,
const bool  final 
)

Recursively create a directory.

Parameters
pathPath to create
finaltrue will create the final path component, false will not
Return values
0on success
-1on error

Definition at line 138 of file util-path.c.

References len, p, SCDefaultMkDir(), and strlcpy().

Here is the call graph for this function:

◆ SCDefaultMkDir()

int SCDefaultMkDir ( const char *  path)

Wrapper around SCMkDir with default mode arguments.

Definition at line 124 of file util-path.c.

References SCMkDir.

Referenced by SCCreateDirectoryTree().

Here is the caller graph for this function:

◆ SCFopenLogFile()

FILE* SCFopenLogFile ( const char *  path,
const char *  mode 
)

Open a text log file for append or truncate.

On Windows, allows the file to be renamed or deleted while open so that external tools can rotate it. Only modes "a" and "w" are supported on all platforms; other modes fail with errno set to EINVAL.

Parameters
pathThe file path to open
mode"a" to append or "w" to truncate
Return values
FILE*on success
NULLon error with errno set

Definition at line 291 of file util-path.c.

References SCWin32Fopen().

Here is the call graph for this function:

◆ SCIsRegularDirectory()

bool SCIsRegularDirectory ( const struct dirent *const  dir_entry)

OS independent wrapper for directory check.

Parameters
dir_entryobject to check
Return values
Trueif the object is a regular directory, otherwise false. This directory and parent directory will return false.

Definition at line 198 of file util-path.c.

◆ SCIsRegularFile()

bool SCIsRegularFile ( const struct dirent *const  dir_entry)

OS independent to check for regular file.

Parameters
dir_entryobject to check
Return values
Trueif the object is a regular file. Otherwise false.

Definition at line 216 of file util-path.c.

◆ SCPathContainsTraversal()

bool SCPathContainsTraversal ( const char *  path)

Check for directory traversal.

Parameters
pathThe path string to check for traversal
Return values
trueif directory traversal is found, otherwise false

Definition at line 269 of file util-path.c.

◆ SCPathExists()

bool SCPathExists ( const char *  path)

Check if a path exists.

Parameters
Pathto check for existence
Return values
trueif path exists
falseif path does not exist

Definition at line 184 of file util-path.c.

◆ SCRealPath()

char* SCRealPath ( const char *  path,
char *  resolved_path 
)

OS independent wrapper for realpath.

Parameters
paththe path to resolve
resolved_paththe resolved path; if null, a buffer will be allocated
Return values
theresolved_path; or a pointer to a new resolved_path buffer

Definition at line 232 of file util-path.c.

◆ SCTouchFile()

int SCTouchFile ( const char *  path)

Update access and modification time of an existing file to 'now'.

Parameters
pathThe file path to touch
Return values
0on success, -1 on failure

Definition at line 310 of file util-path.c.