More strlcat/strlcpy truncate checks.
[amitay/samba.git] / source3 / utils / net_rpc.c
index 4aaf365a884a2bea5bdf44b5f8f9182f90f37067..ad3f448c5eb3f7bee0245ee57315fcb04fb7c802 100644 (file)
@@ -3765,8 +3765,12 @@ static NTSTATUS copy_fn(const char *mnt, struct file_info *f,
                }
 
                /* search below that directory */
-               strlcpy(new_mask, dir, sizeof(new_mask));
-               strlcat(new_mask, "\\*", sizeof(new_mask));
+               if (strlcpy(new_mask, dir, sizeof(new_mask)) >= sizeof(new_mask)) {
+                       return NT_STATUS_NO_MEMORY;
+               }
+               if (strlcat(new_mask, "\\*", sizeof(new_mask)) >= sizeof(new_mask)) {
+                       return NT_STATUS_NO_MEMORY;
+               }
 
                old_dir = local_state->cwd;
                local_state->cwd = dir;
@@ -4807,7 +4811,9 @@ static bool get_user_tokens_from_file(FILE *f,
 
                token = &((*tokens)[*num_tokens-1]);
 
-               strlcpy(token->name, line, sizeof(token->name));
+               if (strlcpy(token->name, line, sizeof(token->name)) >= sizeof(token->name)) {
+                       return false;
+               }
                token->token.num_sids = 0;
                token->token.sids = NULL;
                continue;