Files
s390-tools/zdev/include/sanitize.h
Peter Oberparleiter 360e8d4156 zdev: Harden against invalid firmware data
Reduce chances of unintended side-effects when evaluating firmware
data which might have been corrupted.

Reviewed-by: Vineeth Vijayan <vneethv@linux.ibm.com>
Reviewed-by: Jan Höppner <hoeppner@linux.ibm.com>
Signed-off-by: Peter Oberparleiter <oberpar@linux.ibm.com>
Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com>
2026-07-20 15:25:59 +02:00

39 lines
836 B
C

/*
* zdev - Modify and display the persistent configuration of devices
*
* Copyright IBM Corp. 2026
*
* s390-tools is free software; you can redistribute it and/or modify
* it under the terms of the MIT license. See LICENSE for details.
*/
#ifndef SANITIZE_H
#define SANITIZE_H
#include <ctype.h>
#include <string.h>
/* Valid control-program identifier special characters */
#define VALID_CPNAME "/"
/* Valid attribute key special characters */
#define VALID_ATTRKEY "/:"
/* Valid attribute value special characters */
#define VALID_ATTRVAL "/-+:.,_ "
static inline int is_safe_char(unsigned char c, const char *set)
{
return isalnum(c) || strchr(set, c);
}
static inline void sanitize(char *s, const char *set)
{
for (; *s; s++) {
if (!is_safe_char((unsigned char)*s, set))
*s = '_';
}
}
#endif /* SANITIZE_H */