Fix more asprintf and "ignoring return code" warnings from gcc 4.3.
authorJeremy Allison <jra@samba.org>
Thu, 1 Jan 2009 00:30:11 +0000 (16:30 -0800)
committerJeremy Allison <jra@samba.org>
Thu, 1 Jan 2009 00:30:11 +0000 (16:30 -0800)
Jeremy.

source3/client/client.c
source3/libsmb/passchange.c
source3/script/mkbuildoptions.awk
source3/winbindd/winbindd_ads.c
source3/winbindd/winbindd_cache.c

index 03bc15c68ce435ba33635df6ca72719824f379dd..c63921aa1afa64bd167d464bc7a269067b451877 100644 (file)
@@ -382,7 +382,7 @@ static int do_cd(const char *new_dir)
 
        /* Ensure cur_dir ends in a DIRSEP */
        if ((new_cd[0] != '\0') && (*(new_cd+strlen(new_cd)-1) != CLI_DIRSEP_CHAR)) {
-               new_cd = talloc_asprintf_append(new_cd, CLI_DIRSEP_STR);
+               new_cd = talloc_asprintf_append(new_cd, "%s", CLI_DIRSEP_STR);
                if (!new_cd) {
                        goto out;
                }
@@ -889,7 +889,7 @@ static int cmd_dir(void)
                if (*buf == CLI_DIRSEP_CHAR) {
                        mask = talloc_strdup(ctx, buf);
                } else {
-                       mask = talloc_asprintf_append(mask, buf);
+                       mask = talloc_asprintf_append(mask, "%s", buf);
                }
        } else {
                mask = talloc_asprintf_append(mask, "*");
@@ -930,7 +930,7 @@ static int cmd_du(void)
                return 1;
        }
        if ((mask[0] != '\0') && (mask[strlen(mask)-1]!=CLI_DIRSEP_CHAR)) {
-               mask = talloc_asprintf_append(mask, CLI_DIRSEP_STR);
+               mask = talloc_asprintf_append(mask, "%s", CLI_DIRSEP_STR);
                if (!mask) {
                        return 1;
                }
@@ -941,7 +941,7 @@ static int cmd_du(void)
                if (*buf == CLI_DIRSEP_CHAR) {
                        mask = talloc_strdup(ctx, buf);
                } else {
-                       mask = talloc_asprintf_append(mask, buf);
+                       mask = talloc_asprintf_append(mask, "%s", buf);
                }
        } else {
                mask = talloc_strdup(ctx, "*");
@@ -1127,7 +1127,7 @@ static int cmd_get(void)
                d_printf("get <filename> [localname]\n");
                return 1;
        }
-       rname = talloc_asprintf_append(rname, fname);
+       rname = talloc_asprintf_append(rname, "%s", fname);
        if (!rname) {
                return 1;
        }
@@ -1243,7 +1243,10 @@ static void do_mget(file_info *finfo, const char *dir)
        }
 
        do_list(mget_mask, aSYSTEM | aHIDDEN | aDIR,do_mget,false, true);
-       chdir("..");
+       if (chdir("..") == -1) {
+               d_printf("do_mget: failed to chdir to .. (error %s)\n",
+                       strerror(errno) );
+       }
        client_set_cur_dir(saved_curdir);
        TALLOC_FREE(mget_mask);
        TALLOC_FREE(saved_curdir);
@@ -1286,7 +1289,7 @@ static int cmd_more(void)
                unlink(lname);
                return 1;
        }
-       rname = talloc_asprintf_append(rname, fname);
+       rname = talloc_asprintf_append(rname, "%s", fname);
        if (!rname) {
                return 1;
        }
@@ -1306,7 +1309,10 @@ static int cmd_more(void)
        if (!pager_cmd) {
                return 1;
        }
-       system(pager_cmd);
+       if (system(pager_cmd) == -1) {
+               d_printf("system command '%s' returned -1\n",
+                       pager_cmd);
+       }
        unlink(lname);
 
        return rc;
@@ -1338,7 +1344,7 @@ static int cmd_mget(void)
                        mget_mask = talloc_strdup(ctx, buf);
                } else {
                        mget_mask = talloc_asprintf_append(mget_mask,
-                                                       buf);
+                                                       "%s", buf);
                }
                if (!mget_mask) {
                        return 1;
@@ -1434,7 +1440,7 @@ static int cmd_mkdir(void)
                }
                return 1;
        }
-       mask = talloc_asprintf_append(mask, buf);
+       mask = talloc_asprintf_append(mask, "%s", buf);
        if (!mask) {
                return 1;
        }
@@ -1463,14 +1469,14 @@ static int cmd_mkdir(void)
                trim_char(ddir,'.','\0');
                p = strtok_r(ddir, "/\\", &saveptr);
                while (p) {
-                       ddir2 = talloc_asprintf_append(ddir2, p);
+                       ddir2 = talloc_asprintf_append(ddir2, "%s", p);
                        if (!ddir2) {
                                return 1;
                        }
                        if (!cli_chkpath(targetcli, ddir2)) {
                                do_mkdir(ddir2);
                        }
-                       ddir2 = talloc_asprintf_append(ddir2, CLI_DIRSEP_STR);
+                       ddir2 = talloc_asprintf_append(ddir2, "%s", CLI_DIRSEP_STR);
                        if (!ddir2) {
                                return 1;
                        }
@@ -1502,7 +1508,7 @@ static int cmd_altname(void)
                d_printf("altname <file>\n");
                return 1;
        }
-       name = talloc_asprintf_append(name, buf);
+       name = talloc_asprintf_append(name, "%s", buf);
        if (!name) {
                return 1;
        }
@@ -1586,7 +1592,7 @@ static int cmd_allinfo(void)
                d_printf("allinfo <file>\n");
                return 1;
        }
-       name = talloc_asprintf_append(name, buf);
+       name = talloc_asprintf_append(name, "%s", buf);
        if (!name) {
                return 1;
        }
@@ -1731,9 +1737,9 @@ static int cmd_put(void)
        }
 
        if (next_token_talloc(ctx, &cmd_ptr,&buf,NULL)) {
-               rname = talloc_asprintf_append(rname, buf);
+               rname = talloc_asprintf_append(rname, "%s", buf);
        } else {
-               rname = talloc_asprintf_append(rname, lname);
+               rname = talloc_asprintf_append(rname, "%s", lname);
        }
        if (!rname) {
                return 1;
@@ -2130,7 +2136,7 @@ static int cmd_del(void)
                d_printf("del <filename>\n");
                return 1;
        }
-       mask = talloc_asprintf_append(mask, buf);
+       mask = talloc_asprintf_append(mask, "%s", buf);
        if (!mask) {
                return 1;
        }
@@ -3491,7 +3497,10 @@ static int cmd_lcd(void)
        char *d;
 
        if (next_token_talloc(ctx, &cmd_ptr,&buf,NULL)) {
-               chdir(buf);
+               if (chdir(buf) == -1) {
+                       d_printf("chdir to %s failed (%s)\n",
+                               buf, strerror(errno));
+               }
        }
        d = TALLOC_ARRAY(ctx, char, PATH_MAX+1);
        if (!d) {
@@ -3522,7 +3531,7 @@ static int cmd_reget(void)
                d_printf("reget <filename>\n");
                return 1;
        }
-       remote_name = talloc_asprintf_append(remote_name, fname);
+       remote_name = talloc_asprintf_append(remote_name, "%s", fname);
        if (!remote_name) {
                return 1;
        }
@@ -3569,10 +3578,10 @@ static int cmd_reput(void)
 
        if (next_token_talloc(ctx, &cmd_ptr, &buf, NULL)) {
                remote_name = talloc_asprintf_append(remote_name,
-                                               buf);
+                                               "%s", buf);
        } else {
                remote_name = talloc_asprintf_append(remote_name,
-                                               local_name);
+                                               "%s", local_name);
        }
        if (!remote_name) {
                return 1;
@@ -4106,13 +4115,13 @@ static void completion_remote_filter(const char *mnt,
                                TALLOC_FREE(ctx);
                                return;
                        }
-                       tmp = talloc_asprintf_append(tmp, f->name);
+                       tmp = talloc_asprintf_append(tmp, "%s", f->name);
                        if (!tmp) {
                                TALLOC_FREE(ctx);
                                return;
                        }
                        if (f->mode & aDIR) {
-                               tmp = talloc_asprintf_append(tmp, CLI_DIRSEP_STR);
+                               tmp = talloc_asprintf_append(tmp, "%s", CLI_DIRSEP_STR);
                        }
                        if (!tmp) {
                                TALLOC_FREE(ctx);
@@ -4460,7 +4469,10 @@ static int process_stdin(void)
 
                /* special case - first char is ! */
                if (*line == '!') {
-                       system(line + 1);
+                       if (system(line + 1) == -1) {
+                               d_printf("system() command %s failed.\n",
+                                       line+1);
+                       }
                        SAFE_FREE(line);
                        TALLOC_FREE(frame);
                        continue;
index 2746a4681e379d21d98fe95facac47a092b1affb..76b06088d68e2f4084ae7f0f878721867de7a1b1 100644 (file)
@@ -38,8 +38,10 @@ NTSTATUS remote_password_change(const char *remote_machine, const char *user_nam
        *err_str = NULL;
 
        if(!resolve_name( remote_machine, &ss, 0x20)) {
-               asprintf(err_str, "Unable to find an IP address for machine "
-                        "%s.\n", remote_machine);
+               if (asprintf(err_str, "Unable to find an IP address for machine "
+                        "%s.\n", remote_machine) == -1) {
+                       *err_str = NULL;
+               }
                return NT_STATUS_UNSUCCESSFUL;
        }
 
@@ -50,9 +52,11 @@ NTSTATUS remote_password_change(const char *remote_machine, const char *user_nam
 
        result = cli_connect(cli, remote_machine, &ss);
        if (!NT_STATUS_IS_OK(result)) {
-               asprintf(err_str, "Unable to connect to SMB server on "
+               if (asprintf(err_str, "Unable to connect to SMB server on "
                         "machine %s. Error was : %s.\n",
-                        remote_machine, nt_errstr(result));
+                        remote_machine, nt_errstr(result))==-1) {
+                       *err_str = NULL;
+               }
                cli_shutdown(cli);
                return result;
        }
@@ -61,9 +65,11 @@ NTSTATUS remote_password_change(const char *remote_machine, const char *user_nam
        make_nmb_name(&called , remote_machine, 0x20);
 
        if (!cli_session_request(cli, &calling, &called)) {
-               asprintf(err_str, "machine %s rejected the session setup. "
+               if (asprintf(err_str, "machine %s rejected the session setup. "
                         "Error was : %s.\n",
-                        remote_machine, cli_errstr(cli) );
+                        remote_machine, cli_errstr(cli)) == -1) {
+                       *err_str = NULL;
+               }
                result = cli_nt_error(cli);
                cli_shutdown(cli);
                return result;
@@ -74,9 +80,11 @@ NTSTATUS remote_password_change(const char *remote_machine, const char *user_nam
        result = cli_negprot(cli);
 
        if (!NT_STATUS_IS_OK(result)) {
-               asprintf(err_str, "machine %s rejected the negotiate "
+               if (asprintf(err_str, "machine %s rejected the negotiate "
                         "protocol. Error was : %s.\n",        
-                        remote_machine, nt_errstr(result));
+                        remote_machine, nt_errstr(result)) == -1) {
+                       *err_str = NULL;
+               }
                result = cli_nt_error(cli);
                cli_shutdown(cli);
                return result;
@@ -97,8 +105,10 @@ NTSTATUS remote_password_change(const char *remote_machine, const char *user_nam
 
                if (!NT_STATUS_EQUAL(result, NT_STATUS_PASSWORD_MUST_CHANGE) &&
                    !NT_STATUS_EQUAL(result, NT_STATUS_PASSWORD_EXPIRED)) {
-                       asprintf(err_str, "Could not connect to machine %s: "
-                                "%s\n", remote_machine, cli_errstr(cli));
+                       if (asprintf(err_str, "Could not connect to machine %s: "
+                                "%s\n", remote_machine, cli_errstr(cli)) == -1) {
+                               *err_str = NULL;
+                       }
                        cli_shutdown(cli);
                        return result;
                }
@@ -114,9 +124,11 @@ NTSTATUS remote_password_change(const char *remote_machine, const char *user_nam
                result = cli_session_setup(cli, "", "", 0, "", 0, "");
 
                if (!NT_STATUS_IS_OK(result)) {
-                       asprintf(err_str, "machine %s rejected the session "
+                       if (asprintf(err_str, "machine %s rejected the session "
                                 "setup. Error was : %s.\n",        
-                                remote_machine, cli_errstr(cli) );
+                                remote_machine, cli_errstr(cli)) == -1) {
+                               *err_str = NULL;
+                       }
                        cli_shutdown(cli);
                        return result;
                }
@@ -127,9 +139,11 @@ NTSTATUS remote_password_change(const char *remote_machine, const char *user_nam
        }
 
        if (!cli_send_tconX(cli, "IPC$", "IPC", "", 1)) {
-               asprintf(err_str, "machine %s rejected the tconX on the IPC$ "
+               if (asprintf(err_str, "machine %s rejected the tconX on the IPC$ "
                         "share. Error was : %s.\n",
-                        remote_machine, cli_errstr(cli) );
+                        remote_machine, cli_errstr(cli)) == -1) {
+                       *err_str = NULL;
+               }
                result = cli_nt_error(cli);
                cli_shutdown(cli);
                return result;
@@ -162,18 +176,22 @@ NTSTATUS remote_password_change(const char *remote_machine, const char *user_nam
                if (lp_client_lanman_auth()) {
                        /* Use the old RAP method. */
                        if (!cli_oem_change_password(cli, user_name, new_passwd, old_passwd)) {
-                               asprintf(err_str, "machine %s rejected the "
+                               if (asprintf(err_str, "machine %s rejected the "
                                         "password change: Error was : %s.\n",
-                                        remote_machine, cli_errstr(cli) );
+                                        remote_machine, cli_errstr(cli)) == -1) {
+                                       *err_str = NULL;
+                               }
                                result = cli_nt_error(cli);
                                cli_shutdown(cli);
                                return result;
                        }
                } else {
-                       asprintf(err_str, "SAMR connection to machine %s "
+                       if (asprintf(err_str, "SAMR connection to machine %s "
                                 "failed. Error was %s, but LANMAN password "
                                 "changed are disabled\n",
-                                nt_errstr(result), remote_machine);
+                                nt_errstr(result), remote_machine) == -1) {
+                               *err_str = NULL;
+                       }
                        result = cli_nt_error(cli);
                        cli_shutdown(cli);
                        return result;
@@ -191,9 +209,11 @@ NTSTATUS remote_password_change(const char *remote_machine, const char *user_nam
                     || NT_STATUS_EQUAL(result, NT_STATUS_UNSUCCESSFUL))) {
                /* it failed, but for reasons such as wrong password, too short etc ... */
 
-               asprintf(err_str, "machine %s rejected the password change: "
+               if (asprintf(err_str, "machine %s rejected the password change: "
                         "Error was : %s.\n",
-                        remote_machine, get_friendly_nt_error_msg(result));
+                        remote_machine, get_friendly_nt_error_msg(result)) == -1) {
+                       *err_str = NULL;
+               }
                cli_shutdown(cli);
                return result;
        }
@@ -222,10 +242,12 @@ NTSTATUS remote_password_change(const char *remote_machine, const char *user_nam
                      || NT_STATUS_EQUAL(result, NT_STATUS_UNSUCCESSFUL))) {
                        /* it failed, but again it was due to things like new password too short */
 
-                       asprintf(err_str, "machine %s rejected the "
+                       if (asprintf(err_str, "machine %s rejected the "
                                 "(anonymous) password change: Error was : "
                                 "%s.\n", remote_machine,
-                                get_friendly_nt_error_msg(result));
+                                get_friendly_nt_error_msg(result)) == -1) {
+                               *err_str = NULL;
+                       }
                        cli_shutdown(cli);
                        return result;
                }
@@ -241,17 +263,21 @@ NTSTATUS remote_password_change(const char *remote_machine, const char *user_nam
                                cli_shutdown(cli);
                                return NT_STATUS_OK;
                        }
-                       asprintf(err_str, "machine %s rejected the password "
+                       if (asprintf(err_str, "machine %s rejected the password "
                                 "change: Error was : %s.\n",
-                                remote_machine, cli_errstr(cli) );
+                                remote_machine, cli_errstr(cli)) == -1) {
+                               *err_str = NULL;
+                       }
                        result = cli_nt_error(cli);
                        cli_shutdown(cli);
                        return result;
                } else {
-                       asprintf(err_str, "SAMR connection to machine %s "
+                       if (asprintf(err_str, "SAMR connection to machine %s "
                                 "failed. Error was %s, but LANMAN password "
                                 "changed are disabled\n",
-                               nt_errstr(result), remote_machine);
+                               nt_errstr(result), remote_machine) == -1) {
+                               *err_str = NULL;
+                       }
                        cli_shutdown(cli);
                        return NT_STATUS_UNSUCCESSFUL;
                }
index 02562cf7b2e85c56b5981919a4190b0bcbb7e9ae..a1e5d8506198e60c98709e3945175d219ead28a7 100644 (file)
@@ -23,29 +23,31 @@ BEGIN {
        print "#include \"build_env.h\"";
        print "#include \"dynconfig.h\"";
        print "";
-       print "static void output(bool screen, const char *format, ...) PRINTF_ATTRIBUTE(2,3);";
+       print "static int output(bool screen, const char *format, ...) PRINTF_ATTRIBUTE(2,3);";
        print "void build_options(bool screen);";
        print "";
        print "";
        print "/****************************************************************************";
        print "helper function for build_options";
        print "****************************************************************************/";
-       print "static void output(bool screen, const char *format, ...)";
+       print "static int output(bool screen, const char *format, ...)";
        print "{";
-       print "       char *ptr;";
+       print "       char *ptr = NULL;";
+       print "       int ret = 0;";
        print "       va_list ap;";
        print "       ";
        print "       va_start(ap, format);";
-       print "       vasprintf(&ptr,format,ap);";
+       print "       ret = vasprintf(&ptr,format,ap);";
        print "       va_end(ap);";
        print "";
        print "       if (screen) {";
-       print "              d_printf(\"%s\", ptr);";
+       print "              d_printf(\"%s\", ptr ? ptr : \"\");";
        print "       } else {";
-       print "        DEBUG(4,(\"%s\", ptr));";
+       print "        DEBUG(4,(\"%s\", ptr ? ptr : \"\"));";
        print "       }";
        print "       ";
        print "       SAFE_FREE(ptr);";
+       print "       return ret;";
        print "}";
        print "";
        print "/****************************************************************************";
index 5c7d49184972f68fcee344c71bd0c8d7f45208d2..a508682e5ebc9d189b9197116f6975e2dfd64ab2 100644 (file)
@@ -525,7 +525,10 @@ static NTSTATUS query_user(struct winbindd_domain *domain,
        }
 
        sidstr = sid_binstring(sid);
-       asprintf(&ldap_exp, "(objectSid=%s)", sidstr);
+       if (asprintf(&ldap_exp, "(objectSid=%s)", sidstr) == -1) {
+               status = NT_STATUS_NO_MEMORY;
+               goto done;
+       }
        rc = ads_search_retry(ads, &msg, ldap_exp, attrs);
        free(ldap_exp);
        free(sidstr);
index 2f4a6ffe568232a2404a2932eddea5441051866e..1ae7966bc386f282ca5af8645c1f09ca9669232c 100644 (file)
@@ -3852,7 +3852,9 @@ static TDB_DATA make_tdc_key( const char *domain_name )
        }
               
                
-       asprintf( &keystr, "TRUSTDOMCACHE/%s", domain_name );
+       if (asprintf( &keystr, "TRUSTDOMCACHE/%s", domain_name ) == -1) {
+               return key;
+       }
        key = string_term_tdb_data(keystr);
        
        return key;