chiark / gitweb /
journalctl: reset cached column count on SIGWINCH
[elogind.git] / src / shared / util.h
index 2e49cfde2efda507b6546929387e129b3b15b409..61b88a8b2e6ad0279dea5ecef46609b72115605a 100644 (file)
@@ -385,6 +385,7 @@ int status_welcome(void);
 int fd_columns(int fd);
 unsigned columns(void);
 unsigned columns_uncached(void);
+void columns_cache_reset(int _unused_ signum);
 
 int fd_lines(int fd);
 unsigned lines(void);
@@ -545,14 +546,14 @@ void closedirp(DIR **d);
 void umaskp(mode_t *u);
 
 _malloc_  static inline void *malloc_multiply(size_t a, size_t b) {
-        if (_unlikely_(a > ((size_t) -1) / b))
+        if (_unlikely_(b == 0 || a > ((size_t) -1) / b))
                 return NULL;
 
         return malloc(a * b);
 }
 
 _malloc_ static inline void *memdup_multiply(const void *p, size_t a, size_t b) {
-        if (_unlikely_(a > ((size_t) -1) / b))
+        if (_unlikely_(b == 0 || a > ((size_t) -1) / b))
                 return NULL;
 
         return memdup(p, a * b);