[Pkg-gnupg-commit] [libassuan] 138/437: (_assuan_calloc): Avoid integer overflow.

Eric Dorland eric at moszumanska.debian.org
Fri May 22 05:33:34 UTC 2015


This is an automated email from the git hooks/post-receive script.

eric pushed a commit to branch master
in repository libassuan.

commit d5ff07b33ce99328c7c19bd3201c0928c950d45b
Author: Werner Koch <wk at gnupg.org>
Date:   Mon Apr 4 11:29:45 2005 +0000

    (_assuan_calloc): Avoid integer overflow.
---
 src/ChangeLog     |  4 ++++
 src/assuan-util.c | 17 ++++++++++++++---
 2 files changed, 18 insertions(+), 3 deletions(-)

diff --git a/src/ChangeLog b/src/ChangeLog
index 3e04b78..b74f0a1 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,7 @@
+2005-04-04  Werner Koch  <wk at g10code.com>
+
+	* assuan-util.c (_assuan_calloc): Avoid integer overflow.
+
 2005-03-22  Werner Koch  <wk at g10code.com>
 
 	* assuan-defs.h (struct assuan_io): Renamed elements READ and
diff --git a/src/assuan-util.c b/src/assuan-util.c
index 43fa91e..2c9299a 100644
--- a/src/assuan-util.c
+++ b/src/assuan-util.c
@@ -1,5 +1,5 @@
 /* assuan-util.c - Utility functions for Assuan 
- * Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+ * Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
  *
  * This file is part of Assuan.
  *
@@ -23,6 +23,7 @@
 #include <stdio.h>
 #include <string.h>
 #include <ctype.h>
+#include <errno.h>
 
 #include "assuan-defs.h"
 
@@ -55,9 +56,19 @@ _assuan_realloc (void *a, size_t n)
 void *
 _assuan_calloc (size_t n, size_t m)
 {
-  void *p = _assuan_malloc (n*m);
+  void *p;
+  size_t nbytes;
+    
+  nbytes = n * m;
+  if (m && nbytes / m != n) 
+    {
+      errno = ENOMEM;
+      return NULL;
+    }
+
+  p = _assuan_malloc (nbytes);
   if (p)
-    memset (p, 0, n* m);
+    memset (p, 0, nbytes);
   return p;
 }
 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-gnupg/libassuan.git



More information about the Pkg-gnupg-commit mailing list