OBS-URL: https://build.opensuse.org/request/show/636901 OBS-URL: https://build.opensuse.org/package/show/devel:tools:scm/cvs?expand=0&rev=39
105 lines
3.2 KiB
Diff
105 lines
3.2 KiB
Diff
Index: m4/gnulib-comp.m4
|
|
===================================================================
|
|
--- m4/gnulib-comp.m4.orig
|
|
+++ m4/gnulib-comp.m4
|
|
@@ -102,7 +102,6 @@ AC_DEFUN([gl_INIT],
|
|
gl_FUNC_TZSET_CLOBBER
|
|
gl_UNISTD_SAFER
|
|
gl_FUNC_GLIBC_UNLOCKED_IO
|
|
- gl_FUNC_VASNPRINTF
|
|
gl_FUNC_VASPRINTF
|
|
gl_XALLOC
|
|
gl_XGETCWD
|
|
Index: src/error.c
|
|
===================================================================
|
|
--- src/error.c.orig
|
|
+++ src/error.c
|
|
@@ -111,28 +111,17 @@ error (int status, int errnum, const cha
|
|
int save_errno = errno;
|
|
|
|
/* Various buffers we attempt to use to generate the error message. */
|
|
- char statbuf[256];
|
|
char *buf;
|
|
size_t length;
|
|
- char statbuf2[384];
|
|
char *buf2;
|
|
- char statcmdbuf[32];
|
|
- char *cmdbuf;
|
|
- char *emptybuf = "";
|
|
-
|
|
static const char *last_message = NULL;
|
|
static int last_status;
|
|
static int last_errnum;
|
|
-
|
|
- /* Initialize these to avoid a lot of special case error handling. */
|
|
- buf = statbuf;
|
|
- buf2 = statbuf2;
|
|
- cmdbuf = emptybuf;
|
|
+ char *cmdbuf = 0;
|
|
|
|
/* Expand the message the user passed us. */
|
|
- length = sizeof (statbuf);
|
|
va_start (args, message);
|
|
- buf = vasnprintf (statbuf, &length, message, args);
|
|
+ length = vasprintf (&buf, message, args);
|
|
va_end (args);
|
|
if (!buf) goto memerror;
|
|
|
|
@@ -145,21 +134,19 @@ error (int status, int errnum, const cha
|
|
*/
|
|
if (cvs_cmd_name)
|
|
{
|
|
- length = sizeof (statcmdbuf);
|
|
- cmdbuf = asnprintf (statcmdbuf, &length, " %s%s%s",
|
|
- status ? "[" : "",
|
|
- cvs_cmd_name,
|
|
- status ? " aborted]" : "");
|
|
+ length = asprintf (&cmdbuf, " %s%s%s",
|
|
+ status ? "[" : "",
|
|
+ cvs_cmd_name,
|
|
+ status ? " aborted]" : "");
|
|
/* Else cmdbuf still = emptybuf. */
|
|
if (!cmdbuf) goto memerror;
|
|
}
|
|
/* Else cmdbuf still = emptybuf. */
|
|
|
|
/* Now put it all together. */
|
|
- length = sizeof (statbuf2);
|
|
- buf2 = asnprintf (statbuf2, &length, "%s%s: %s%s%s\n",
|
|
- program_name, cmdbuf, buf,
|
|
- errnum ? ": " : "", errnum ? strerror (errnum) : "");
|
|
+ length = asprintf (&buf2, "%s%s: %s%s%s\n",
|
|
+ program_name, cmdbuf ? cmdbuf : "", buf,
|
|
+ errnum ? ": " : "", errnum ? strerror (errnum) : "");
|
|
if (!buf2) goto memerror;
|
|
|
|
/* Send the final message to the client or log it.
|
|
@@ -183,9 +170,9 @@ error (int status, int errnum, const cha
|
|
exit (EXIT_FAILURE);
|
|
|
|
/* Free anything we may have allocated. */
|
|
- if (buf != statbuf) free (buf);
|
|
- if (buf2 != statbuf2) free (buf2);
|
|
- if (cmdbuf != statcmdbuf && cmdbuf != emptybuf) free (cmdbuf);
|
|
+ free (buf);
|
|
+ free (buf2);
|
|
+ free (cmdbuf);
|
|
|
|
/* Restore errno per our charter. */
|
|
errno = save_errno;
|
|
Index: src/subr.c
|
|
===================================================================
|
|
--- src/subr.c.orig
|
|
+++ src/subr.c
|
|
@@ -1819,8 +1819,8 @@ Xasnprintf (char *resultbuf, size_t *len
|
|
char *result;
|
|
|
|
va_start (args, format);
|
|
- result = vasnprintf (resultbuf, lengthp, format, args);
|
|
- if (result == NULL)
|
|
+ *lengthp = vasprintf (&result, format, args);
|
|
+ if (*lengthp < 0)
|
|
error (1, errno, "Failed to write to string.");
|
|
va_end (args);
|
|
|