summaryrefslogtreecommitdiffstats
path: root/paste.c
diff options
context:
space:
mode:
authorThomas Adam <thomas@xteddy.org>2014-06-20 12:59:43 +0100
committerThomas Adam <thomas@xteddy.org>2014-06-20 12:59:43 +0100
commit814e40522cb611895e84fc2aaf58d5d0ca9ba348 (patch)
tree12e56d683fbcadf4d67f8a78acf8afcf1343ba0b /paste.c
parent1544c688e6bdc61fec8a96588b2552551753e46b (diff)
parentc8efffb4db5c521640dd5687d2a640ca04664aad (diff)
Merge branch 'obsd-master'
Diffstat (limited to 'paste.c')
-rw-r--r--paste.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/paste.c b/paste.c
index fdd4f5d6..0ff5958c 100644
--- a/paste.c
+++ b/paste.c
@@ -175,7 +175,7 @@ paste_add(char *data, size_t size)
int
paste_rename(const char *oldname, const char *newname, char **cause)
{
- struct paste_buffer *pb;
+ struct paste_buffer *pb, *pb_new;
if (cause != NULL)
*cause = NULL;
@@ -194,7 +194,14 @@ paste_rename(const char *oldname, const char *newname, char **cause)
pb = paste_get_name(oldname);
if (pb == NULL) {
if (cause != NULL)
- xasprintf(cause, "no buffer %s", oldname);
+ xasprintf(cause, "no buffer %s", oldname);
+ return (-1);
+ }
+
+ pb_new = paste_get_name(newname);
+ if (pb_new != NULL) {
+ if (cause != NULL)
+ xasprintf(cause, "buffer %s already exists", newname);
return (-1);
}