#include "utils/net.h"
#include "../libcli/security/security.h"
#include "lib/util/string_wrappers.h"
+#include "lib/util/util_file.h"
struct {
const char *us_errstr;
"%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] == ',') {
if (fchmod(tmpfd, 0644) == -1) {
d_fprintf(stderr,
_("net usershare add: failed to fchmod tmp file %s "
- "to 0644n"),
+ "to 0644\n"),
full_path_tmp );
TALLOC_FREE(ctx);
close(tmpfd);
/* 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",
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);