[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Cvs-cvs] ccvs/src ChangeLog add.c edit.c lock.c rcs.c se...
From: |
Mark D. Baushke |
Subject: |
[Cvs-cvs] ccvs/src ChangeLog add.c edit.c lock.c rcs.c se... |
Date: |
Fri, 26 May 2006 19:25:57 +0000 |
CVSROOT: /cvsroot/cvs
Module name: ccvs
Branch:
Changes by: Mark D. Baushke <address@hidden> 06/05/26 19:25:57
Modified files:
src : ChangeLog add.c edit.c lock.c rcs.c server.c
tag.c
Log message:
Merge changes from 1.11.x.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/cvs/ccvs/src/ChangeLog.diff?tr1=1.3432&tr2=1.3433&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/cvs/ccvs/src/add.c.diff?tr1=1.124&tr2=1.125&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/cvs/ccvs/src/edit.c.diff?tr1=1.93&tr2=1.94&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/cvs/ccvs/src/lock.c.diff?tr1=1.119&tr2=1.120&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/cvs/ccvs/src/rcs.c.diff?tr1=1.369&tr2=1.370&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/cvs/ccvs/src/server.c.diff?tr1=1.463&tr2=1.464&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/cvs/ccvs/src/tag.c.diff?tr1=1.148&tr2=1.149&r1=text&r2=text
Patches:
Index: ccvs/src/ChangeLog
diff -u ccvs/src/ChangeLog:1.3432 ccvs/src/ChangeLog:1.3433
--- ccvs/src/ChangeLog:1.3432 Fri May 26 04:35:57 2006
+++ ccvs/src/ChangeLog Fri May 26 19:25:57 2006
@@ -1,3 +1,32 @@
+2006-05-26 Mark D. Baushke <address@hidden>
+
+ * add.c (add): Do not leak memory.
+ [Fixes NetBSD coverity cid-2199.]
+
+ * edit.c (onoff_fileproc): Do not leak memory.
+ [Fixes NetBSD coverity cid-2201.]
+
+ * edit.c (onoff_filesdoneproc): Do not leak memory.
+ [Fixes NetBSD coverity cid-2202.]
+
+ * lock.c (readers_exist): Add assert (lockdir).
+ [Fixes NetBSD coverity cid-2411.]
+
+ * rcs.c (RCS_findlock_or_tip): Do not leak memory.
+ [Fixes NetBSD coverity cid-2198.]
+
+ * rcs.c (RCS_getdate): Avoid possible NULL dereference.
+ [Fixes NetBSD coverity cid-2412.]
+
+ * server.c (serve_sticky): Do not leak file descriptors.
+ [Fixes NetBSD coverity cid-2197.]
+
+ * server.c (do_cvs_command): Do not leak memory.
+ [Fixes NetBSD coverity cid-2204.]
+
+ * tag.c (add_to_val_tags): Do not leak memory.
+ [Fixes NetBSD coverity cid-2071.]
+
2006-05-25 Derek Price <address@hidden>
* rsh-client.c (start_rsh_server): Remove verbose comment attempting to
Index: ccvs/src/add.c
diff -u ccvs/src/add.c:1.124 ccvs/src/add.c:1.125
--- ccvs/src/add.c:1.124 Fri May 12 17:12:46 2006
+++ ccvs/src/add.c Fri May 26 19:25:57 2006
@@ -175,11 +175,15 @@
int j;
if (argc == 0)
+ {
/* We snipped out all the arguments in the above sanity
check. We can just forget the whole thing (and we
better, because if we fired up the server and passed it
nothing, it would spit back a usage message). */
+ if (options)
+ free (options);
return err;
+ }
start_server ();
ign_setup ();
Index: ccvs/src/edit.c
diff -u ccvs/src/edit.c:1.93 ccvs/src/edit.c:1.94
--- ccvs/src/edit.c:1.93 Thu May 4 16:48:01 2006
+++ ccvs/src/edit.c Fri May 26 19:25:57 2006
@@ -50,8 +50,10 @@
static int
onoff_fileproc (void *callerdat, struct file_info *finfo)
{
- fileattr_get0 (finfo->file, "_watched");
+ char *watched = fileattr_get0 (finfo->file, "_watched");
fileattr_set (finfo->file, "_watched", turning_on ? "" : NULL);
+ if (watched != NULL)
+ free (watched);
return 0;
}
@@ -63,8 +65,10 @@
{
if (setting_default)
{
- fileattr_get0 (NULL, "_watched");
+ char *watched = fileattr_get0 (NULL, "_watched");
fileattr_set (NULL, "_watched", turning_on ? "" : NULL);
+ if (watched != NULL)
+ free (watched);
}
return err;
}
Index: ccvs/src/lock.c
diff -u ccvs/src/lock.c:1.119 ccvs/src/lock.c:1.120
--- ccvs/src/lock.c:1.119 Mon Apr 24 18:50:26 2006
+++ ccvs/src/lock.c Fri May 26 19:25:57 2006
@@ -609,6 +609,9 @@
repository, filepat, ignore ? ignore : "(null)");
lockdir = lock_name (repository, "");
+
+ assert (lockdir != NULL);
+
lockdir[strlen (lockdir) - 1] = '\0'; /* remove trailing slash */
do {
Index: ccvs/src/rcs.c
diff -u ccvs/src/rcs.c:1.369 ccvs/src/rcs.c:1.370
--- ccvs/src/rcs.c:1.369 Wed May 24 16:38:51 2006
+++ ccvs/src/rcs.c Fri May 26 19:25:57 2006
@@ -3010,6 +3010,8 @@
{
char *date_1_1 = vers->date;
+ assert (p->data != NULL);
+
vers = p->data;
if (RCS_datecmp (vers->date, date_1_1) != 0)
return xstrdup ("1.1");
@@ -5070,6 +5072,7 @@
char *user = getcaller();
Node *lock, *p;
List *locklist;
+ char *defaultrev = NULL;
/* Find unique delta locked by caller. This code is very similar
to the code in RCS_unlock -- perhaps it could be abstracted
@@ -5115,7 +5118,10 @@
those error checks are to make users lock before a checkin, and we do
that in other ways if at all anyway (e.g. rcslock.pl). */
- p = findnode (rcs->versions, RCS_getbranch (rcs, rcs->branch, 0));
+ defaultrev = RCS_getbranch (rcs, rcs->branch, 0);
+ p = findnode (rcs->versions, defaultrev);
+ if (defaultrev != NULL)
+ free (defaultrev);
if (!p)
{
error (0, 0, "RCS file `%s' does not contain its default revision.",
Index: ccvs/src/server.c
diff -u ccvs/src/server.c:1.463 ccvs/src/server.c:1.464
--- ccvs/src/server.c:1.463 Sat May 13 00:54:04 2006
+++ ccvs/src/server.c Fri May 26 19:25:57 2006
@@ -1532,6 +1532,7 @@
if (alloc_pending (80 + strlen (CVSADM_TAG)))
sprintf (pending_error_text, "E cannot write to %s", CVSADM_TAG);
pending_error = save_errno;
+ (void) fclose (f);
return;
}
if (fclose (f) == EOF)
@@ -3959,9 +3960,10 @@
/* OK, sit around getting all the input from the child. */
{
- struct buffer *stdoutbuf;
- struct buffer *stderrbuf;
- struct buffer *protocol_inbuf;
+ struct buffer *stdoutbuf = NULL;
+ struct buffer *stderrbuf = NULL;
+ struct buffer *protocol_inbuf = NULL;
+ int err_exit = 0;
/* Number of file descriptors to check in select (). */
int num_to_check;
int count_needed = 1;
@@ -4011,7 +4013,8 @@
{
buf_output0 (buf_to_net, "E close failed\n");
print_error (errno);
- goto error_exit;
+ err_exit = 1;
+ goto child_finish;
}
stdout_pipe[1] = -1;
@@ -4019,7 +4022,8 @@
{
buf_output0 (buf_to_net, "E close failed\n");
print_error (errno);
- goto error_exit;
+ err_exit = 1;
+ goto child_finish;
}
stderr_pipe[1] = -1;
@@ -4027,7 +4031,8 @@
{
buf_output0 (buf_to_net, "E close failed\n");
print_error (errno);
- goto error_exit;
+ err_exit = 1;
+ goto child_finish;
}
protocol_pipe[1] = -1;
@@ -4036,7 +4041,8 @@
{
buf_output0 (buf_to_net, "E close failed\n");
print_error (errno);
- goto error_exit;
+ err_exit = 1;
+ goto child_finish;
}
flowcontrol_pipe[0] = -1;
# endif /* SERVER_FLOWCONTROL */
@@ -4046,7 +4052,8 @@
buf_output0 (buf_to_net, "E close failed\n");
print_error (errno);
dev_null_fd = -1; /* Do not try to close it again. */
- goto error_exit;
+ err_exit = 1;
+ goto child_finish;
}
dev_null_fd = -1;
@@ -4133,7 +4140,8 @@
{
buf_output0 (buf_to_net, "E select failed\n");
print_error (errno);
- goto error_exit;
+ err_exit = 1;
+ goto child_finish;
}
} while (numfds < 0);
@@ -4166,7 +4174,8 @@
{
buf_output0 (buf_to_net, "E buf_input_data failed\n");
print_error (status);
- goto error_exit;
+ err_exit = 1;
+ goto child_finish;
}
/*
@@ -4240,7 +4249,8 @@
{
buf_output0 (buf_to_net, "E buf_input_data failed\n");
print_error (status);
- goto error_exit;
+ err_exit = 1;
+ goto child_finish;
}
/* What should we do with errors? syslog() them? */
@@ -4265,7 +4275,8 @@
{
buf_output0 (buf_to_net, "E buf_input_data failed\n");
print_error (status);
- goto error_exit;
+ err_exit = 1;
+ goto child_finish;
}
/* What should we do with errors? syslog() them? */
@@ -4345,21 +4356,33 @@
command_pid = -1;
}
+ child_finish:
/*
* OK, we've waited for the child. By now all CVS locks are free
* and it's OK to block on the network.
*/
set_block (buf_to_net);
buf_flush (buf_to_net, 1);
- buf_shutdown (protocol_inbuf);
- buf_free (protocol_inbuf);
- protocol_inbuf = NULL;
- buf_shutdown (stderrbuf);
- buf_free (stderrbuf);
- stderrbuf = NULL;
- buf_shutdown (stdoutbuf);
- buf_free (stdoutbuf);
- stdoutbuf = NULL;
+ if (protocol_inbuf)
+ {
+ buf_shutdown (protocol_inbuf);
+ buf_free (protocol_inbuf);
+ protocol_inbuf = NULL;
+ }
+ if (stderrbuf)
+ {
+ buf_shutdown (stderrbuf);
+ buf_free (stderrbuf);
+ stderrbuf = NULL;
+ }
+ if (stdoutbuf)
+ {
+ buf_shutdown (stdoutbuf);
+ buf_free (stdoutbuf);
+ stdoutbuf = NULL;
+ }
+ if (err_exit)
+ goto error_exit;
}
if (errs)
Index: ccvs/src/tag.c
diff -u ccvs/src/tag.c:1.148 ccvs/src/tag.c:1.149
--- ccvs/src/tag.c:1.148 Sat May 20 12:17:32 2006
+++ ccvs/src/tag.c Fri May 26 19:25:57 2006
@@ -1550,6 +1550,8 @@
if (is_in_val_tags (&db, name))
{
clear_val_tags_lock ();
+ if (db)
+ dbm_close (db);
return;
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Cvs-cvs] ccvs/src ChangeLog add.c edit.c lock.c rcs.c se...,
Mark D. Baushke <=