about summary refs log tree commit diff
diff options
context:
space:
mode:
authorXiaoming Ni <nixiaoming@huawei.com>2022-05-05 11:01:10 +0800
committerSiddhesh Poyarekar <siddhesh@sourceware.org>2022-05-05 17:48:04 +0530
commited2ddeffa5d4a51a0d7fe8af701e86cb2fd4ce05 (patch)
tree9f74ef0aabe8c4957b3806b88d8e5205b49b865a
parent6a9786b8ecf84a23f9d108a46f58e9fcca70c4a9 (diff)
downloadglibc-ed2ddeffa5d4a51a0d7fe8af701e86cb2fd4ce05.tar.gz
glibc-ed2ddeffa5d4a51a0d7fe8af701e86cb2fd4ce05.tar.xz
glibc-ed2ddeffa5d4a51a0d7fe8af701e86cb2fd4ce05.zip
clock_adjtime: Use __nonnull to avoid null pointer
clock_adjtime()/clock_adjtime64()
Add __nonnull((2)) to avoid null pointer access.

Link: https://sourceware.org/bugzilla/show_bug.cgi?id=27662
Link: https://sourceware.org/bugzilla/show_bug.cgi?id=29084
Signed-off-by: Xiaoming Ni <nixiaoming@huawei.com>
Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
-rw-r--r--sysdeps/unix/sysv/linux/bits/time.h4
-rw-r--r--sysdeps/unix/sysv/linux/include/sys/timex.h2
2 files changed, 3 insertions, 3 deletions
diff --git a/sysdeps/unix/sysv/linux/bits/time.h b/sysdeps/unix/sysv/linux/bits/time.h
index efb4a014df..0485a1e181 100644
--- a/sysdeps/unix/sysv/linux/bits/time.h
+++ b/sysdeps/unix/sysv/linux/bits/time.h
@@ -75,13 +75,13 @@ extern long int __sysconf (int);
 __BEGIN_DECLS
 
 /* Tune a POSIX clock.  */
-extern int clock_adjtime (__clockid_t __clock_id, struct timex *__utx) __THROW;
+extern int clock_adjtime (__clockid_t __clock_id, struct timex *__utx) __THROW __nonnull((2));
 
 #ifdef __USE_TIME_BITS64
 # if defined(__REDIRECT_NTH)
 extern int __REDIRECT_NTH (clock_adjtime, (__clockid_t __clock_id,
                                            struct timex *__utx),
-                           __clock_adjtime64);
+                           __clock_adjtime64) __nonnull((2));
 # else
 # define clock_adjtime __clock_adjtime64
 # endif
diff --git a/sysdeps/unix/sysv/linux/include/sys/timex.h b/sysdeps/unix/sysv/linux/include/sys/timex.h
index 9d0da60640..0c0261a06d 100644
--- a/sysdeps/unix/sysv/linux/include/sys/timex.h
+++ b/sysdeps/unix/sysv/linux/include/sys/timex.h
@@ -77,7 +77,7 @@ struct __timex64
   int  :32;
   int  :32;
 };
-extern int __clock_adjtime64 (const clockid_t clock_id, struct __timex64 *tx64);
+extern int __clock_adjtime64 (const clockid_t clock_id, struct __timex64 *tx64) __nonnull((2));
 libc_hidden_proto (__clock_adjtime64);
 extern int ___adjtimex64 (struct __timex64 *tx64) __nonnull ((1));
 libc_hidden_proto (___adjtimex64)