talloc_move - only nullify pointer if memory got "stolen"?

Uri Simchoni uri at samba.org
Thu Mar 9 12:43:10 UTC 2017


On 03/09/2017 02:31 PM, Andreas Schneider wrote:
> On Thursday, 9 March 2017 12:19:46 CET Stefan Metzmacher wrote:
>> Am 09.03.2017 um 12:07 schrieb Uri Simchoni:
>>> On 03/09/2017 12:54 PM, Stefan Metzmacher wrote:
>>>> Hi Uri,
>>>>
>>>>> Just came across this - is the attached patch correct / necessary?
>>>>
>>>> Can you give more details? In what situation does that happen?
>>>>
>>>> metze
>>>
>>> I just looked at the code, no special "situation". I was wondering
>>> whether I need to check the return value of talloc_move(), and what
>>> happens if it fails.
>>
>> talloc_steal() and talloc_move() never fail.
>>
>> The doxygen comment for talloc_steal has this:
>>
>>  * @return              Returns the pointer that you pass it. It does
>> not have
>>  *                      any failure modes.
>>
>> While the comment for talloc_move() seems to be wrong:
>>
>>  * @return              The pointer of the talloc chunk it has been
>> moved to,
>>  *                      NULL on error.
>>
>>
>> talloc_guide.txt seems to be not that explicit about the return value
>> of talloc_steal() and talloc_move() is completely missing.
>>
>> We may want to improve the doxygen comments and talloc_guide.txt...
> 
> talloc_guide.txt is outdated since years. We should remove it.
> 
How's this for the doxygen fix?

-------------- next part --------------
>From cd9f0bf9955dcaca103566e9bc4690344150a223 Mon Sep 17 00:00:00 2001
From: Uri Simchoni <uri at samba.org>
Date: Thu, 9 Mar 2017 14:40:54 +0200
Subject: [PATCH] talloc: fix doxygen of talloc_move

talloc_move cannot fail.

Signed-off-by: Uri Simchoni <uri at samba.org>
---
 lib/talloc/talloc.h | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/lib/talloc/talloc.h b/lib/talloc/talloc.h
index 227f745..618430a 100644
--- a/lib/talloc/talloc.h
+++ b/lib/talloc/talloc.h
@@ -407,10 +407,11 @@ const char *talloc_set_name(const void *ptr, const char *fmt, ...) PRINTF_ATTRIB
  *
  * @param[in]  new_ctx  The new parent context.
  *
- * @param[in]  pptr     Pointer to the talloc chunk to move.
+ * @param[in]  pptr     Pointer to a pointer to the talloc chunk to move.
+ *
+ * @return              The pointer to the talloc chunk that moved.
+ *                      It does not have any failure modes.
  *
- * @return              The pointer of the talloc chunk it has been moved to,
- *                      NULL on error.
  */
 void *talloc_move(const void *new_ctx, void **pptr);
 #else
-- 
2.9.3



More information about the samba-technical mailing list