diff options
author | Kay Sievers <kay.sievers@suse.de> | 2005-08-28 13:49:32 +0200 |
---|---|---|
committer | Kay Sievers <kay.sievers@suse.de> | 2005-08-28 13:49:32 +0200 |
commit | 5b13ecb830cdec338b514b9ed8c2c559c2f05223 (patch) | |
tree | 1000378ec86832a9dc9cab74a966c4ace98e9e76 /udev_utils.h | |
parent | 7104c558dad47ee85860ebb891bdc8820d95154d (diff) |
add uft8 validation for safe volume label exporting
We will not support any other character encoding than plain ascii
or utf8 for volume labels. All invalid utf8 and non-ascii characters
are substituted for security reasons. No options, no fancy heuristics.
Signed-off-by: Kay Sievers <kay.sievers@suse.de>
Diffstat (limited to 'udev_utils.h')
-rw-r--r-- | udev_utils.h | 29 |
1 files changed, 18 insertions, 11 deletions
diff --git a/udev_utils.h b/udev_utils.h index 0a307526b7..a07d8d2b7c 100644 --- a/udev_utils.h +++ b/udev_utils.h @@ -31,22 +31,29 @@ struct name_entry { char name[PATH_SIZE]; }; -extern int strcmp_pattern(const char *p, const char *s); -extern int kernel_release_satisfactory(unsigned int version, unsigned int patchlevel, unsigned int sublevel); -extern int create_path(const char *path); +/* udev_utils.c */ extern int log_priority(const char *priority); -extern int string_is_true(const char *str); -extern int parse_get_pair(char **orig_string, char **left, char **right); -extern int unlink_secure(const char *filename); -extern int file_map(const char *filename, char **buf, size_t *bufsize); -extern void file_unmap(void *buf, size_t bufsize); -extern size_t buf_get_line(const char *buf, size_t buflen, size_t cur); -extern void remove_trailing_char(char *path, char c); -extern void replace_untrusted_chars(char *string); +extern int kernel_release_satisfactory(unsigned int version, unsigned int patchlevel, unsigned int sublevel); extern int name_list_add(struct list_head *name_list, const char *name, int sort); extern int name_list_key_add(struct list_head *name_list, const char *key, const char *value); extern void name_list_cleanup(struct list_head *name_list); extern int add_matching_files(struct list_head *name_list, const char *dirname, const char *suffix); + +/* udev_utils_string.c */ +extern int strcmp_pattern(const char *p, const char *s); +extern int string_is_true(const char *str); +extern void replace_untrusted_chars(char *string); +extern void remove_trailing_char(char *path, char c); +extern int utf8_encoded_valid_unichar(const char *str); + +/* udev_utils_file.c */ +extern int create_path(const char *path); +extern int file_map(const char *filename, char **buf, size_t *bufsize); +extern void file_unmap(void *buf, size_t bufsize); +extern int unlink_secure(const char *filename); +extern size_t buf_get_line(const char *buf, size_t buflen, size_t cur); + +/* udev_utils_run.c */ extern int pass_env_to_socket(const char *name, const char *devpath, const char *action); extern int run_program(const char *command, const char *subsystem, char *result, size_t ressize, size_t *reslen, int log); |