Преглед изворни кода

confdb_sa_write: propagate errbuf_len parameter

* lib/sa-confdb.c (confdb_sa_write): Propagate errbuf_len parameter.
* lib/sa-confdb.h: Update prototype

git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2003 fd59a12c-fef9-0310-b244-a6a79926bd2f
Jim Meyering пре 17 година
родитељ
комит
b6378dc05d
2 измењених фајлова са 8 додато и 6 уклоњено
  1. 6 4
      lib/sa-confdb.c
  2. 2 2
      lib/sa-confdb.h

+ 6 - 4
lib/sa-confdb.c

@@ -302,15 +302,17 @@ int confdb_sa_key_replace (
 					 new_value, new_value_len);
 }
 
-int confdb_sa_write (
-	char *error_text)
+int confdb_sa_write (char *error_text, size_t errbuf_len)
 {
 	const char *errtext;
 	int ret;
 
 	ret = objdb->object_write_config(&errtext);
-	if (!ret)
-		strcpy(error_text, errtext);
+	if (!ret) {
+		strncpy(error_text, errtext, errbuf_len);
+		if (errbuf_len > 0)
+			error_text[errbuf_len-1] = '\0';
+	}
 
 	return ret;
 }

+ 2 - 2
lib/sa-confdb.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008 Red Hat, Inc.
+ * Copyright (c) 2008, 2009 Red Hat, Inc.
  *
  * All rights reserved.
  *
@@ -46,5 +46,5 @@ extern int confdb_sa_key_iter(hdb_handle_t parent_object_handle, hdb_handle_t st
 extern int confdb_sa_key_increment(hdb_handle_t parent_object_handle, const void *key_name, int key_name_len, unsigned int *value);
 extern int confdb_sa_key_decrement(hdb_handle_t parent_object_handle, const void *key_name, int key_name_len, unsigned int *value);
 extern int confdb_sa_find_destroy(hdb_handle_t find_handle);
-extern int confdb_sa_write(char *error_text);
+extern int confdb_sa_write(char *error_text, size_t errbuf_len);
 extern int confdb_sa_reload(int flush, char *error_text);