]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
smbd: Simplify notify_filter_string
authorVolker Lendecke <vl@samba.org>
Thu, 20 Jun 2024 18:19:52 +0000 (20:19 +0200)
committerJeremy Allison <jra@samba.org>
Mon, 24 Jun 2024 16:21:32 +0000 (16:21 +0000)
Just a single NULL check through talloc_asprintf_addbuf

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
source3/smbd/notify.c

index d08df3c8380ad94199b102ffa3efbb69cc73d99b..c6710a84b93183e1df437aa8f17e980c3704cc5a 100644 (file)
@@ -859,81 +859,46 @@ char *notify_filter_string(TALLOC_CTX *mem_ctx, uint32_t filter)
        char *result = NULL;
 
        result = talloc_strdup(mem_ctx, "");
-       if (result == NULL) {
-               return NULL;
-       }
 
        if (filter & FILE_NOTIFY_CHANGE_FILE_NAME) {
-               result = talloc_asprintf_append(result, "FILE_NAME|");
-               if (result == NULL) {
-                       return NULL;
-               }
+               talloc_asprintf_addbuf(&result, "FILE_NAME|");
        }
        if (filter & FILE_NOTIFY_CHANGE_DIR_NAME) {
-               result = talloc_asprintf_append(result, "DIR_NAME|");
-               if (result == NULL) {
-                       return NULL;
-               }
+               talloc_asprintf_addbuf(&result, "DIR_NAME|");
        }
        if (filter & FILE_NOTIFY_CHANGE_ATTRIBUTES) {
-               result = talloc_asprintf_append(result, "ATTRIBUTES|");
-               if (result == NULL) {
-                       return NULL;
-               }
+               talloc_asprintf_addbuf(&result, "ATTRIBUTES|");
        }
        if (filter & FILE_NOTIFY_CHANGE_SIZE) {
-               result = talloc_asprintf_append(result, "SIZE|");
-               if (result == NULL) {
-                       return NULL;
-               }
+               talloc_asprintf_addbuf(&result, "SIZE|");
        }
        if (filter & FILE_NOTIFY_CHANGE_LAST_WRITE) {
-               result = talloc_asprintf_append(result, "LAST_WRITE|");
-               if (result == NULL) {
-                       return NULL;
-               }
+               talloc_asprintf_addbuf(&result, "LAST_WRITE|");
        }
        if (filter & FILE_NOTIFY_CHANGE_LAST_ACCESS) {
-               result = talloc_asprintf_append(result, "LAST_ACCESS|");
-               if (result == NULL) {
-                       return NULL;
-               }
+               talloc_asprintf_addbuf(&result, "LAST_ACCESS|");
        }
        if (filter & FILE_NOTIFY_CHANGE_CREATION) {
-               result = talloc_asprintf_append(result, "CREATION|");
-               if (result == NULL) {
-                       return NULL;
-               }
+               talloc_asprintf_addbuf(&result, "CREATION|");
        }
        if (filter & FILE_NOTIFY_CHANGE_EA) {
-               result = talloc_asprintf_append(result, "EA|");
-               if (result == NULL) {
-                       return NULL;
-               }
+               talloc_asprintf_addbuf(&result, "EA|");
        }
        if (filter & FILE_NOTIFY_CHANGE_SECURITY) {
-               result = talloc_asprintf_append(result, "SECURITY|");
-               if (result == NULL) {
-                       return NULL;
-               }
+               talloc_asprintf_addbuf(&result, "SECURITY|");
        }
        if (filter & FILE_NOTIFY_CHANGE_STREAM_NAME) {
-               result = talloc_asprintf_append(result, "STREAM_NAME|");
-               if (result == NULL) {
-                       return NULL;
-               }
+               talloc_asprintf_addbuf(&result, "STREAM_NAME|");
        }
        if (filter & FILE_NOTIFY_CHANGE_STREAM_SIZE) {
-               result = talloc_asprintf_append(result, "STREAM_SIZE|");
-               if (result == NULL) {
-                       return NULL;
-               }
+               talloc_asprintf_addbuf(&result, "STREAM_SIZE|");
        }
        if (filter & FILE_NOTIFY_CHANGE_STREAM_WRITE) {
-               result = talloc_asprintf_append(result, "STREAM_WRITE|");
-               if (result == NULL) {
-                       return NULL;
-               }
+               talloc_asprintf_addbuf(&result, "STREAM_WRITE|");
+       }
+
+       if (result == NULL) {
+               return NULL;
        }
 
        if (*result == '\0') return result;