From: Jim Meyering <[email protected]>

* lib/sa-confdb.c (confdb_sa_write): Propagate errbuf_len parameter.
* lib/sa-confdb.h: Update prototype
---
 lib/sa-confdb.c |   10 ++++++----
 lib/sa-confdb.h |    4 ++--
 2 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/lib/sa-confdb.c b/lib/sa-confdb.c
index 30a1fc3..6a65dad 100644
--- a/lib/sa-confdb.c
+++ b/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;
 }
diff --git a/lib/sa-confdb.h b/lib/sa-confdb.h
index 36a1bed..bd11177 100644
--- a/lib/sa-confdb.h
+++ b/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);
-- 
1.6.2.rc1.285.gc5f54

_______________________________________________
Openais mailing list
[email protected]
https://lists.linux-foundation.org/mailman/listinfo/openais

Reply via email to