diff options
-rw-r--r-- | utils/mountd/cache.c | 36 |
1 files changed, 5 insertions, 31 deletions
diff --git a/utils/mountd/cache.c b/utils/mountd/cache.c index 942fdbd..8de2eac 100644 --- a/utils/mountd/cache.c +++ b/utils/mountd/cache.c @@ -917,14 +917,15 @@ out_false: * * Returned exportent points to static memory. */ -static struct exportent *do_locations_to_export(struct jp_ops *ops, - nfs_fsloc_set_t locations, const char *junction, - char *options, size_t options_len) +static struct exportent *locations_to_export(struct jp_ops *ops, + nfs_fsloc_set_t locations, const char *junction) { + static char options[BUFSIZ]; struct exportent *exp; int ttl; - if (!locations_to_options(ops, locations, options, options_len, &ttl)) + options[0] = '\0'; + if (!locations_to_options(ops, locations, options, sizeof(options), &ttl)) return NULL; exp = mkexportent("*", (char *)junction, options); @@ -939,33 +940,6 @@ static struct exportent *do_locations_to_export(struct jp_ops *ops, } /* - * Convert set of FS locations to an exportent. Returns pointer to - * an exportent if "junction" refers to a junction. - * - * Returned exportent points to static memory. - */ -static struct exportent *locations_to_export(struct jp_ops *ops, - nfs_fsloc_set_t locations, const char *junction) -{ - struct exportent *exp; - char *options; - - options = malloc(BUFSIZ); - if (options == NULL) { - xlog(D_GENERAL, "%s: failed to allocate options buffer", - __func__); - return NULL; - } - options[0] = '\0'; - - exp = do_locations_to_export(ops, locations, junction, - options, BUFSIZ); - - free(options); - return exp; -} - -/* * Retrieve locations information in "junction" and dump it to the * kernel. Returns pointer to an exportent if "junction" refers * to a junction. |