public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] gentoo-projects commit in pax-utils: xfuncs.c
@ 2008-12-30 13:00 Mike Frysinger (vapier)
  0 siblings, 0 replies; 6+ messages in thread
From: Mike Frysinger (vapier) @ 2008-12-30 13:00 UTC (permalink / raw
  To: gentoo-commits

vapier      08/12/30 13:00:29

  Modified:             xfuncs.c
  Log:
  drop local func decls as we already include xfuncs.h and get them

Revision  Changes    Path
1.3                  pax-utils/xfuncs.c

file : http://sources.gentoo.org/viewcvs.py/gentoo-projects/pax-utils/xfuncs.c?rev=1.3&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo-projects/pax-utils/xfuncs.c?rev=1.3&content-type=text/plain
diff : http://sources.gentoo.org/viewcvs.py/gentoo-projects/pax-utils/xfuncs.c?r1=1.2&r2=1.3

Index: xfuncs.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/pax-utils/xfuncs.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- xfuncs.c	30 Dec 2008 12:58:08 -0000	1.2
+++ xfuncs.c	30 Dec 2008 13:00:29 -0000	1.3
@@ -1,7 +1,7 @@
 /*
  * Copyright 2003-2007 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/pax-utils/xfuncs.c,v 1.2 2008/12/30 12:58:08 vapier Exp $
+ * $Header: /var/cvsroot/gentoo-projects/pax-utils/xfuncs.c,v 1.3 2008/12/30 13:00:29 vapier Exp $
  *
  * Copyright 2003-2007 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2004-2007 Mike Frysinger  - <vapier@gentoo.org>
@@ -9,7 +9,6 @@
 
 #include "paxinc.h"
 
-char *xstrdup(const char *s);
 char *xstrdup(const char *s)
 {
 	char *ret = strdup(s);
@@ -17,7 +16,6 @@
 	return ret;
 }
 
-void *xmalloc(size_t size);
 void *xmalloc(size_t size)
 {
 	void *ret = malloc(size);
@@ -25,13 +23,11 @@
 	return ret;
 }
 
-void *xzalloc(size_t size);
 void *xzalloc(size_t size)
 {
 	return memset(xmalloc(size), 0, size);
 }
 
-void *xrealloc(void *ptr, size_t size);
 void *xrealloc(void *ptr, size_t size)
 {
 	void *ret = realloc(ptr, size);
@@ -39,7 +35,6 @@
 	return ret;
 }
 
-void xstrncat(char **dst, const char *src, size_t *curr_len, size_t n);
 void xstrncat(char **dst, const char *src, size_t *curr_len, size_t n)
 {
 	size_t new_len;
@@ -58,7 +53,6 @@
 		strcat(*dst, src);
 }
 
-void xchrcat(char **dst, const char append, size_t *curr_len);
 void xchrcat(char **dst, const char append, size_t *curr_len)
 {
 	static char my_app[2];






^ permalink raw reply	[flat|nested] 6+ messages in thread

* [gentoo-commits] gentoo-projects commit in pax-utils: xfuncs.c
@ 2009-01-31 18:02 Fabian Groffen (grobian)
  0 siblings, 0 replies; 6+ messages in thread
From: Fabian Groffen (grobian) @ 2009-01-31 18:02 UTC (permalink / raw
  To: gentoo-commits

grobian     09/01/31 18:02:13

  Modified:             xfuncs.c
  Log:
  c&p error

Revision  Changes    Path
1.5                  pax-utils/xfuncs.c

file : http://sources.gentoo.org/viewcvs.py/gentoo-projects/pax-utils/xfuncs.c?rev=1.5&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo-projects/pax-utils/xfuncs.c?rev=1.5&content-type=text/plain
diff : http://sources.gentoo.org/viewcvs.py/gentoo-projects/pax-utils/xfuncs.c?r1=1.4&r2=1.5

Index: xfuncs.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/pax-utils/xfuncs.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- xfuncs.c	31 Jan 2009 17:58:37 -0000	1.4
+++ xfuncs.c	31 Jan 2009 18:02:13 -0000	1.5
@@ -1,7 +1,7 @@
 /*
  * Copyright 2003-2007 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/pax-utils/xfuncs.c,v 1.4 2009/01/31 17:58:37 grobian Exp $
+ * $Header: /var/cvsroot/gentoo-projects/pax-utils/xfuncs.c,v 1.5 2009/01/31 18:02:13 grobian Exp $
  *
  * Copyright 2003-2007 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2004-2007 Mike Frysinger  - <vapier@gentoo.org>
@@ -38,7 +38,7 @@
 char *xstrndup(const char *s, const size_t n)
 {
 	char *ret = strndup(s, n);
-	if (!ret) err("Could not strdup(): %s", strerror(errno));
+	if (!ret) err("Could not strndup(): %s", strerror(errno));
 	return ret;
 }
 






^ permalink raw reply	[flat|nested] 6+ messages in thread

* [gentoo-commits] gentoo-projects commit in pax-utils: xfuncs.c
@ 2009-12-01 10:15 Mike Frysinger (vapier)
  0 siblings, 0 replies; 6+ messages in thread
From: Mike Frysinger (vapier) @ 2009-12-01 10:15 UTC (permalink / raw
  To: gentoo-commits

vapier      09/12/01 10:15:06

  Modified:             xfuncs.c
  Log:
  allow xstrcat to start off with a NULL destination

Revision  Changes    Path
1.6                  pax-utils/xfuncs.c

file : http://sources.gentoo.org/viewcvs.py/gentoo-projects/pax-utils/xfuncs.c?rev=1.6&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo-projects/pax-utils/xfuncs.c?rev=1.6&content-type=text/plain
diff : http://sources.gentoo.org/viewcvs.py/gentoo-projects/pax-utils/xfuncs.c?r1=1.5&r2=1.6

Index: xfuncs.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/pax-utils/xfuncs.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- xfuncs.c	31 Jan 2009 18:02:13 -0000	1.5
+++ xfuncs.c	1 Dec 2009 10:15:06 -0000	1.6
@@ -1,7 +1,7 @@
 /*
  * Copyright 2003-2007 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/pax-utils/xfuncs.c,v 1.5 2009/01/31 18:02:13 grobian Exp $
+ * $Header: /var/cvsroot/gentoo-projects/pax-utils/xfuncs.c,v 1.6 2009/12/01 10:15:06 vapier Exp $
  *
  * Copyright 2003-2007 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2004-2007 Mike Frysinger  - <vapier@gentoo.org>
@@ -65,7 +65,7 @@
 {
 	size_t new_len;
 
-	new_len = strlen(*dst) + strlen(src);
+	new_len = (*curr_len ? strlen(*dst) : 0) + strlen(src);
 	if (*curr_len <= new_len) {
 		*curr_len = new_len + (*curr_len / 2);
 		*dst = realloc(*dst, *curr_len);






^ permalink raw reply	[flat|nested] 6+ messages in thread

* [gentoo-commits] gentoo-projects commit in pax-utils: xfuncs.c
@ 2010-02-13 23:17 Mike Frysinger (vapier)
  0 siblings, 0 replies; 6+ messages in thread
From: Mike Frysinger (vapier) @ 2010-02-13 23:17 UTC (permalink / raw
  To: gentoo-commits

vapier      10/02/13 23:17:46

  Modified:             xfuncs.c
  Log:
  use %zu for size_t instead of casting to random long types

Revision  Changes    Path
1.8                  pax-utils/xfuncs.c

file : http://sources.gentoo.org/viewcvs.py/gentoo-projects/pax-utils/xfuncs.c?rev=1.8&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo-projects/pax-utils/xfuncs.c?rev=1.8&content-type=text/plain
diff : http://sources.gentoo.org/viewcvs.py/gentoo-projects/pax-utils/xfuncs.c?r1=1.7&r2=1.8

Index: xfuncs.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/pax-utils/xfuncs.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- xfuncs.c	3 Dec 2009 04:15:54 -0000	1.7
+++ xfuncs.c	13 Feb 2010 23:17:45 -0000	1.8
@@ -1,7 +1,7 @@
 /*
  * Copyright 2003-2007 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/pax-utils/xfuncs.c,v 1.7 2009/12/03 04:15:54 vapier Exp $
+ * $Header: /var/cvsroot/gentoo-projects/pax-utils/xfuncs.c,v 1.8 2010/02/13 23:17:45 vapier Exp $
  *
  * Copyright 2003-2007 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2004-2007 Mike Frysinger  - <vapier@gentoo.org>
@@ -19,7 +19,7 @@
 void *xmalloc(size_t size)
 {
 	void *ret = malloc(size);
-	if (!ret) err("Could not malloc() %li bytes", (unsigned long)size);
+	if (!ret) err("Could not malloc() %zu bytes", size);
 	return ret;
 }
 
@@ -31,7 +31,7 @@
 void *xrealloc(void *ptr, size_t size)
 {
 	void *ret = realloc(ptr, size);
-	if (!ret) err("Could not realloc() %li bytes", (unsigned long)size);
+	if (!ret) err("Could not realloc() %zu bytes", size);
 	return ret;
 }
 
@@ -44,7 +44,7 @@
 		*curr_len = new_len + (*curr_len / 2);
 		*dst = realloc(*dst, *curr_len);
 		if (!*dst)
-			err("could not realloc() %li bytes", (unsigned long)*curr_len);
+			err("could not realloc() %zu bytes", *curr_len);
 	}
 
 	if (n)






^ permalink raw reply	[flat|nested] 6+ messages in thread

* [gentoo-commits] gentoo-projects commit in pax-utils: xfuncs.c
@ 2010-02-13 23:27 Mike Frysinger (vapier)
  0 siblings, 0 replies; 6+ messages in thread
From: Mike Frysinger (vapier) @ 2010-02-13 23:27 UTC (permalink / raw
  To: gentoo-commits

vapier      10/02/13 23:27:12

  Modified:             xfuncs.c
  Log:
  make sure we initialize new string memory

Revision  Changes    Path
1.9                  pax-utils/xfuncs.c

file : http://sources.gentoo.org/viewcvs.py/gentoo-projects/pax-utils/xfuncs.c?rev=1.9&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo-projects/pax-utils/xfuncs.c?rev=1.9&content-type=text/plain
diff : http://sources.gentoo.org/viewcvs.py/gentoo-projects/pax-utils/xfuncs.c?r1=1.8&r2=1.9

Index: xfuncs.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/pax-utils/xfuncs.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- xfuncs.c	13 Feb 2010 23:17:45 -0000	1.8
+++ xfuncs.c	13 Feb 2010 23:27:12 -0000	1.9
@@ -1,7 +1,7 @@
 /*
  * Copyright 2003-2007 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/pax-utils/xfuncs.c,v 1.8 2010/02/13 23:17:45 vapier Exp $
+ * $Header: /var/cvsroot/gentoo-projects/pax-utils/xfuncs.c,v 1.9 2010/02/13 23:27:12 vapier Exp $
  *
  * Copyright 2003-2007 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2004-2007 Mike Frysinger  - <vapier@gentoo.org>
@@ -37,14 +37,18 @@
 
 void xstrncat(char **dst, const char *src, size_t *curr_len, size_t n)
 {
+	bool init;
 	size_t new_len;
 
-	new_len = (*curr_len ? strlen(*dst) : 0) + strlen(src);
+	init = *curr_len ? false : true;
+	new_len = (init ? 0 : strlen(*dst)) + strlen(src);
 	if (*curr_len <= new_len) {
-		*curr_len = new_len + (*curr_len / 2);
+		*curr_len = new_len + (*curr_len / 2) + 1;
 		*dst = realloc(*dst, *curr_len);
 		if (!*dst)
 			err("could not realloc() %zu bytes", *curr_len);
+		if (init)
+			*dst[0] = '\0';
 	}
 
 	if (n)






^ permalink raw reply	[flat|nested] 6+ messages in thread

* [gentoo-commits] gentoo-projects commit in pax-utils: xfuncs.c
@ 2014-03-20  7:52 Mike Frysinger (vapier)
  0 siblings, 0 replies; 6+ messages in thread
From: Mike Frysinger (vapier) @ 2014-03-20  7:52 UTC (permalink / raw
  To: gentoo-commits

vapier      14/03/20 07:52:07

  Modified:             xfuncs.c
  Log:
  fix possible memory read errors when walking arrays
  
  the current code will always fetch the arr->eles[n] in array_for_each before doing the n < arr->num check.  gcc might optimize it such that the read occurs rather than delaying it until after the loop limit check, but it also might not.  at any rate, ASAN catches it and complains mightly.  this new method ends up wasting 1 pointer worth of memory, but we wont worry about 4 or 8 bytes per array as this code is not that critical.

Revision  Changes    Path
1.12                 pax-utils/xfuncs.c

file : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/pax-utils/xfuncs.c?rev=1.12&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-projects/pax-utils/xfuncs.c?rev=1.12&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-projects/pax-utils/xfuncs.c?r1=1.11&r2=1.12

Index: xfuncs.c
===================================================================
RCS file: /var/cvsroot/gentoo-projects/pax-utils/xfuncs.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- xfuncs.c	4 Nov 2012 07:26:24 -0000	1.11
+++ xfuncs.c	20 Mar 2014 07:52:07 -0000	1.12
@@ -1,7 +1,7 @@
 /*
  * Copyright 2003-2012 Gentoo Foundation
  * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/pax-utils/xfuncs.c,v 1.11 2012/11/04 07:26:24 vapier Exp $
+ * $Header: /var/cvsroot/gentoo-projects/pax-utils/xfuncs.c,v 1.12 2014/03/20 07:52:07 vapier Exp $
  *
  * Copyright 2003-2012 Ned Ludd        - <solar@gentoo.org>
  * Copyright 2004-2012 Mike Frysinger  - <vapier@gentoo.org>
@@ -75,7 +75,11 @@
 void xarraypush(array_t *arr, const void *ele, size_t ele_len)
 {
 	size_t n = arr->num++;
-	arr->eles = xrealloc_array(arr->eles, arr->num, sizeof(ele));
+	/* We allocate one excess element so that array_for_each can
+	 * always safely fetch the next element.  It's minor memory
+	 * wastage to avoid having to do a len check all the time.
+	 */
+	arr->eles = xrealloc_array(arr->eles, arr->num + 1, sizeof(ele));
 	arr->eles[n] = xmemdup(ele, ele_len);
 }
 





^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2014-03-20  7:52 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-12-30 13:00 [gentoo-commits] gentoo-projects commit in pax-utils: xfuncs.c Mike Frysinger (vapier)
  -- strict thread matches above, loose matches on Subject: below --
2009-01-31 18:02 Fabian Groffen (grobian)
2009-12-01 10:15 Mike Frysinger (vapier)
2010-02-13 23:17 Mike Frysinger (vapier)
2010-02-13 23:27 Mike Frysinger (vapier)
2014-03-20  7:52 Mike Frysinger (vapier)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox