]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s3:net_usershare: Handle allocation failure
authorJoseph Sutton <josephsutton@catalyst.net.nz>
Mon, 13 Feb 2023 01:59:38 +0000 (14:59 +1300)
committerAndreas Schneider <asn@cryptomilk.org>
Wed, 12 Apr 2023 13:52:31 +0000 (13:52 +0000)
Signed-off-by: Joseph Sutton <josephsutton@catalyst.net.nz>
Reviewed-by: Andreas Schneider <asn@samba.org>
source3/utils/net_usershare.c

index 5e630ea5d4a320b7dff35d0b2a7e5c69a9803fb2..a4887a3a34d92b90bc705e7aad994eb4ea221594 100644 (file)
@@ -891,6 +891,12 @@ static int net_usershare_add(struct net_context *c, int argc, const char **argv)
                        "%s:%c,",
                        dom_sid_str_buf(&sid, &buf),
                        pcolon[1]);
+               if (us_acl == NULL) {
+                       d_fprintf(stderr,
+                                 _("net usershare add: talloc_asprintf_append() failed\n"));
+                       TALLOC_FREE(ctx);
+                       return -1;
+               }
 
                /* Move to the next ACL entry. */
                if (pcolon[2] == ',') {
@@ -964,6 +970,13 @@ static int net_usershare_add(struct net_context *c, int argc, const char **argv)
 
        /* Create the in-memory image of the file. */
        file_img = talloc_strdup(ctx, "#VERSION 2\npath=");
+       if (file_img == NULL) {
+               d_fprintf(stderr,
+                         _("net usershare add: talloc_strdup() failed\n"));
+               TALLOC_FREE(ctx);
+               close(tmpfd);
+               return -1;
+       }
        file_img = talloc_asprintf_append(file_img,
                        "%s\ncomment=%s\nusershare_acl=%s\n"
                        "guest_ok=%c\nsharename=%s\n",
@@ -972,6 +985,13 @@ static int net_usershare_add(struct net_context *c, int argc, const char **argv)
                        us_acl,
                        guest_ok ? 'y' : 'n',
                        cp_sharename);
+       if (file_img == NULL) {
+               d_fprintf(stderr,
+                         _("net usershare add: talloc_asprintf_append() failed\n"));
+               TALLOC_FREE(ctx);
+               close(tmpfd);
+               return -1;
+       }
 
        to_write = strlen(file_img);