diff options
author | Jeremy Allison <jra@samba.org> | 2008-12-31 18:06:57 -0800 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2008-12-31 18:06:57 -0800 |
commit | 07e0094365e8dc360a83eec2e7cf9b1d5d8d6d00 (patch) | |
tree | 412f448d68b4b0f36c5b330a1f3eef77acf12a2f /source3/utils/smbget.c | |
parent | bb23f5725f538d14b2ccec0463cfb1136be3ebd0 (diff) | |
download | samba-07e0094365e8dc360a83eec2e7cf9b1d5d8d6d00.tar.gz samba-07e0094365e8dc360a83eec2e7cf9b1d5d8d6d00.tar.bz2 samba-07e0094365e8dc360a83eec2e7cf9b1d5d8d6d00.zip |
Fix all warnings in source3 with gcc4.3.
Jeremy.
Diffstat (limited to 'source3/utils/smbget.c')
-rw-r--r-- | source3/utils/smbget.c | 28 |
1 files changed, 22 insertions, 6 deletions
diff --git a/source3/utils/smbget.c b/source3/utils/smbget.c index 3d4a71b71d..c062134a55 100644 --- a/source3/utils/smbget.c +++ b/source3/utils/smbget.c @@ -91,14 +91,18 @@ static void get_auth_data(const char *srv, const char *shr, char *wg, int wglen, if(!nonprompt && !username) { printf("Username for %s at %s [guest] ", shr, srv); - fgets(tmp, sizeof(tmp), stdin); + if (fgets(tmp, sizeof(tmp), stdin) == NULL) { + return; + } if(tmp[strlen(tmp)-1] == '\n')tmp[strlen(tmp)-1] = '\0'; strncpy(un, tmp, unlen-1); } else if(username) strncpy(un, username, unlen-1); if(!nonprompt && !password) { char *prompt, *pass; - asprintf(&prompt, "Password for %s at %s: ", shr, srv); + if (asprintf(&prompt, "Password for %s at %s: ", shr, srv) == -1) { + return; + } pass = getpass(prompt); free(prompt); strncpy(pw, pass, pwlen-1); @@ -138,7 +142,9 @@ static int smb_download_dir(const char *base, const char *name, int resume) while((dirent = smbc_readdir(dirhandle))) { char *newname; if(!strcmp(dirent->name, ".") || !strcmp(dirent->name, ".."))continue; - asprintf(&newname, "%s/%s", tmpname, dirent->name); + if (asprintf(&newname, "%s/%s", tmpname, dirent->name) == -1) { + return 0; + } switch(dirent->smbc_type) { case SMBC_DIR: smb_download_dir(base, newname, resume); @@ -231,11 +237,19 @@ static void print_progress(const char *name, time_t start, time_t now, off_t sta human_readable(avg, havg, sizeof(havg)); len = asprintf(&status, "%s of %s (%.2f%%) at %s/s ETA: %s", hpos, htotal, prcnt, havg, print_time(eta)); + if (len == -1) { + return; + } if(columns) { int required = strlen(name), available = columns - len - strlen("[] "); - if(required > available) asprintf(&filename, "...%s", name + required - available + 3); - else filename = SMB_STRNDUP(name, available); + if(required > available) { + if (asprintf(&filename, "...%s", name + required - available + 3) == -1) { + return; + } + } else { + filename = SMB_STRNDUP(name, available); + } } else filename = SMB_STRDUP(name); fprintf(stderr, "\r[%s] %s", filename, status); @@ -574,7 +588,9 @@ int main(int argc, const char **argv) load_case_tables(); /* only read rcfile if it exists */ - asprintf(&rcfile, "%s/.smbgetrc", getenv("HOME")); + if (asprintf(&rcfile, "%s/.smbgetrc", getenv("HOME")) == -1) { + return 1; + } if(access(rcfile, F_OK) == 0) readrcfile(rcfile, long_options); free(rcfile); |