kim_options_create sometimes returns KIM_OPTIONS_DEFAULT
authorAlexandra Ellwood <lxs@mit.edu>
Thu, 9 Oct 2008 17:49:23 +0000 (17:49 +0000)
committerAlexandra Ellwood <lxs@mit.edu>
Thu, 9 Oct 2008 17:49:23 +0000 (17:49 +0000)
ticket: new

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@20853 dc483132-0cff-0310-8789-dd5450dbe970

src/kim/lib/kim_options.c

index 08f1ddb6fc48534aa8dcd5935940a9f2fa492f8d..5d7e58ae5fe67e5c1c2760bd5937230e908d3625 100644 (file)
@@ -91,6 +91,7 @@ kim_error kim_options_create (kim_options *out_options)
 {
     kim_error err = KIM_NO_ERROR;
     kim_preferences preferences = NULL;
+    kim_options options = KIM_OPTIONS_DEFAULT;
     
     if (!err && !out_options) { err = check_error (KIM_NULL_PARAMETER_ERR); }
     
@@ -99,9 +100,19 @@ kim_error kim_options_create (kim_options *out_options)
     }
     
     if (!err) {
-        err = kim_preferences_get_options (preferences, out_options);
+        err = kim_preferences_get_options (preferences, &options);
     }
     
+    if (!err && !options) {
+        err = kim_options_allocate (&options);
+    }
+    
+    if (!err) {
+        *out_options = options;
+        options = NULL; /* caller takes ownership */
+    }
+    
+    kim_options_free (&options);
     kim_preferences_free (&preferences);
     
     return check_error (err);