On (04/04/14 17:47), Dmitri Pal wrote:
>
>>>>>
>>>>>Just a couple minor edits to the language of the doxygen:
>>>>>
>>>>>
>>>>>diff --git a/ini/ini_configobj.h b/ini/ini_configobj.h
>>>>>index 9a4eb58..4ef98dc 100644
>>>>>- --- a/ini/ini_configobj.h
>>>>>+++ b/ini/ini_configobj.h
>>>>>@@ -483,6 +483,31 @@ int ini_config_file_open(const char *filename,
>>>>>                           struct ini_cfgfile **file_ctx);
>>>>>
>>>>>  /**
>>>>>+ * @brief Create a configuration file object using memory buffer.
>>>>>
>>>>>@brief Create a configuration file object from a NULL-terminated buffer.
>>>>>
>>>>>+ *
>>>>>+ * Create a file object for parsing a configuration file.
>>>>>+ * Configuration will use provided memory instead of the actual file.
>>>>>
>>>>>Configuration will use the provided memory buffer instead of a real file.
>>>>>
>>>>>+ *
>>>>>+ * A "configuration file object" is different from
>>>>>+ * a "configuration object". The former stores metadata
>>>>>+ * about a file the configuration data is read from,
>>>>>
>>>>>about a file from which the configuration data is read,
>>>>>(this is a very esoteric bit of English)
>>>>>
>>>>>+ * while the latter holds the configuration itself.
>>>>>
>>>>>while the latter holds the configuration data itself.
>
>I split it into a separate ticket.
>https://fedorahosted.org/sssd/ticket/2307
>I suspect that there are other places like this that require some polish.
>Somone needs to review doxygen comments and ding-libs and make them
>use better English.
>
>
>>+ *
>>+ * @param[in]  data_buf         In memory configuration data.
>>
>>In-memory
>>
>>+ *                              Needs to be NULL terminated.
>>
>>NULL-terminated
>>
>>+ * @param[in]  data_len         Length of memory data
>>+ *                              not including terminating NULL.
>>+ * @param[out] file_ctx         Configuration file object.
>>+ *
>>+ * @return 0 - Success.
>>+ * @return EINVAL - Invalid parameter.
>>+ * @return ENOMEM - No memory.
>>+ */
>>+int ini_config_file_from_mem(void *data_buf,
>>+                             uint32_t data_len,
>>+                             struct ini_cfgfile **file_ctx);
>>+
>>
>>
>>
>>
>>One additional question: is it expected that data_buf will contain NUL
>>values in it other than the terminator? If not, why does data_len exist?
>
>Interesting question.
>Here is how I see it.
>
>Man page for fmemopen says:
>
>       FILE *fmemopen(void *buf, size_t size, const char *mode);
>
>      ...
>
>DESCRIPTION
>       The  fmemopen()  function opens a stream that permits the
>access speci-
>       fied by mode.  The stream allows I/O to be performed on the
>string  or
>       memory  buffer  pointed  to  by buf.  This buffer must be at
>least size
>       bytes long.
>
>
>At least!
>But in reality if it is of the same value the function does not work.
>I checked it twice and valgrind confirmed that it is trying to read
>past the end of the buffer.
>
>So the NULL termination is the attempt to work around the bug in fmemopen.
>The caller of the function needs to make sure that the function would
>work thus we say to NULL terminate the buffer.
>
>I think I need to add another test. This test would use part of the
>buffer not the whole one.
>https://fedorahosted.org/sssd/ticket/2306
>
>
>Can we push the patches as the thread gets long and hard to deal with.
>All comments are either addressed or tracked as separate tickets.
>
I am fine with current version but I have another idea.
(I know it is little bit late but it is better to ask before pushing patches to
public repo)

Could we make next function internal:
int ini_config_file_from_mem(void *data_buf,
                             uint32_t data_len,
                             struct ini_cfgfile **file_ctx);

and public function will be
int ini_config_file_from_string(const char *string_config
                                struct ini_cfgfile **file_ctx);

I do not know requirements from yelley; so my idea needn't be acceptable.

LS
_______________________________________________
sssd-devel mailing list
sssd-devel@lists.fedorahosted.org
https://lists.fedorahosted.org/mailman/listinfo/sssd-devel

Reply via email to