tomoyo: fix clang pointer arithmetic warning
authorArnd Bergmann <arnd@arndb.de>
Wed, 28 Oct 2020 14:14:04 +0000 (23:14 +0900)
committerTetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Wed, 28 Oct 2020 14:21:43 +0000 (23:21 +0900)
clang warns about additions on NULL pointers being undefined in C:

security/tomoyo/securityfs_if.c:226:59: warning: arithmetic on a null pointer treated as a cast from integer to pointer is a GNU extension [-Wnull-pointer-arithmetic]
        securityfs_create_file(name, mode, parent, ((u8 *) NULL) + key,

Change the code to instead use a cast through uintptr_t to avoid
the warning.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
security/tomoyo/securityfs_if.c

index 546281c..065f494 100644 (file)
@@ -131,8 +131,8 @@ static const struct file_operations tomoyo_self_operations = {
  */
 static int tomoyo_open(struct inode *inode, struct file *file)
 {
-       const int key = ((u8 *) file_inode(file)->i_private)
-               - ((u8 *) NULL);
+       const u8 key = (uintptr_t) file_inode(file)->i_private;
+
        return tomoyo_open_control(key, file);
 }
 
@@ -223,7 +223,7 @@ static const struct file_operations tomoyo_operations = {
 static void __init tomoyo_create_entry(const char *name, const umode_t mode,
                                       struct dentry *parent, const u8 key)
 {
-       securityfs_create_file(name, mode, parent, ((u8 *) NULL) + key,
+       securityfs_create_file(name, mode, parent, (void *) (uintptr_t) key,
                               &tomoyo_operations);
 }