diff --git a/dll/nap/nap.c b/dll/nap/nap.c index fdfc0d8..8dbbb72 100644 --- a/dll/nap/nap.c +++ b/dll/nap/nap.c @@ -273,11 +273,9 @@ int connectbynumber(char *hostn, unsigned short *portnum, int service, int proto /* Inet domain client */ else if (service == SERVICE_CLIENT) { - struct sockaddr_foobar server; + struct sockaddr_foobar server = { 0 }; struct hostent *hp; - memset(&server, 0, sizeof(struct sockaddr_in)); - if (isdigit(hostn[strlen(hostn)-1])) inet_aton(hostn, (struct in_addr *)&server.sf_addr); else @@ -313,15 +311,15 @@ int connectbynumber(char *hostn, unsigned short *portnum, int service, int proto return fd; } - - char *numeric_banner(int curr) { - static char thing[4]; + static char thing[4]; + if (!get_dllint_var("napster_show_numeric")) - return (nap_ansi?nap_ansi:empty_string); - sprintf(thing, "%3.3u", curr); - return (thing); + return nap_ansi ? nap_ansi : empty_string; + + snprintf(thing, sizeof thing, "%3.3d", curr); + return thing; } static void set_numeric_string(Window *win, char *value, int unused) @@ -1015,11 +1013,13 @@ char *chan; if (!(chan = next_arg(args, &args))) return 0; ch = (ChannelStruct *)find_in_list((List **)&nchannels, chan, 0); + if (!ch) + return 0; + ch->injoin = 0; if (do_hook(MODULE_LIST, "NAP ENDNAMES %s", chan)) { - if (ch) - name_print(ch->nicks, 0); + name_print(ch->nicks, 0); } malloc_strcpy(&nap_current_channel, chan); return 0; @@ -1746,7 +1746,7 @@ char *type = NULL; } else if (strstr(cmd, "line")) { - if (value < 0 || value > 10) + if (value > 10) { nap_say("%s", cparse("Allowed linespeed 0-10", NULL)); return; diff --git a/dll/nap/nap_file.c b/dll/nap/nap_file.c index 963588f..26122f1 100644 --- a/dll/nap/nap_file.c +++ b/dll/nap/nap_file.c @@ -482,12 +482,11 @@ unsigned long nbytes = 0; if (gf && gf->count) { int flags = O_WRONLY; - memset(&indata, 0, 200); if ((rc = read(snum, &indata, gf->count)) != gf->count) return; if (!isdigit(*indata) || !*(indata+1) || !isdigit(*(indata+1))) { - rc += read(snum, &indata[gf->count], sizeof(indata)-1); + rc += read(snum, &indata[gf->count], sizeof indata - gf->count); indata[rc] = 0; nap_say("Request from %s is %s", gf->nick, indata); gf = find_in_getfile(&getfile_struct, 1, gf->nick, gf->checksum, gf->filename, -1, NAP_DOWNLOAD); @@ -525,7 +524,8 @@ unsigned long nbytes = 0; send_ncommand(CMDS_UPDATE_GET, NULL); return; } - if ((rc = ioctl(snum, FIONREAD, &nbytes) != -1)) + rc = ioctl(snum, FIONREAD, &nbytes); + if (rc != -1) { if (nbytes) { diff --git a/dll/nap/napsend.c b/dll/nap/napsend.c index 4e17eef..bd9ca0b 100644 --- a/dll/nap/napsend.c +++ b/dll/nap/napsend.c @@ -65,7 +65,7 @@ char *mime_type[] = { "x-wav", "x-aiff", "x-midi", "x-mod", "x-mp3", /* 0-4 */ char *audio[] = {".wav", ".aiff", ".mid", ".mod", ".mp3", ""}; char *image[] = {".jpg", ".gif", ""}; char *video[] = {".mpg", ".dat", ""}; -char *application[] = {".tar.gz" ".tar.Z", ".Z", ".gz", ".arc", ".bz2", ".zip", ""}; +char *application[] = {".tar.gz", ".tar.Z", ".Z", ".gz", ".arc", ".bz2", ".zip", ""}; char *find_mime_type(char *fn) { @@ -259,7 +259,7 @@ char *make_mp3_string(FILE *fp, Files *f, char *fs, char *dirbuff) *s++ = *fs; break; case 'b': - sprintf(s, "%*u", prec, f->bitrate); + sprintf(s, "%*d", prec, f->bitrate); break; case 's': if (!prec) prec = 3; @@ -287,7 +287,7 @@ char *make_mp3_string(FILE *fp, Files *f, char *fs, char *dirbuff) sprintf(s, "%*.*f", prec, fl, ((double)f->freq) / ((double)1000.0)); break; case 'h': - sprintf(s, "%*u", prec, f->freq); + sprintf(s, "%*d", prec, f->freq); break; default: *s++ = *fs; @@ -364,7 +364,7 @@ char *fs = NULL; *dir = 0; for (new = fserv_files; new; new = new->next) { - if (!pattern || (pattern && wild_match(pattern, new->filename))) + if (!pattern || wild_match(pattern, new->filename)) { char *p; p = base_name(new->filename); @@ -681,7 +681,7 @@ long get_bitrate(int fdes, time_t *mp3_time, int *freq_rate, unsigned long *file lseek(fdes, 0, SEEK_SET); *id3 = 0; rc = read(fdes, buff, 128); - if (!strncmp(buff, "ID3", 3)) + if (rc == 128 && !strncmp(buff, "ID3", 3)) { struct id3v2 { char tag[3]; @@ -725,8 +725,6 @@ md5_state_t state; char buffer[BIG_BUFFER_SIZE+1]; struct stat st; unsigned long size = DEFAULT_MD5_SIZE; -int di = 0; -int rc; #if !defined(WINNT) && !defined(__EMX__) char *m; @@ -750,7 +748,9 @@ int rc; #if defined(WINNT) || defined(__EMX__) while (size) { + int rc; unsigned char md5_buff[8 * NAP_BUFFER_SIZE+1]; + rc = (size >= (8 * NAP_BUFFER_SIZE)) ? 8 * NAP_BUFFER_SIZE : size; rc = read(r, md5_buff, rc); md5_append(&state, (unsigned char *)md5_buff, rc); @@ -768,11 +768,13 @@ int rc; md5_finish(digest, &state); munmap(m, size); #endif - memset(buffer, 0, 200); - for (di = 0, rc = 0; di < 16; ++di, rc += 2) - snprintf(&buffer[rc], BIG_BUFFER_SIZE, "%02x", digest[di]); - strcat(buffer, "-"); - strcat(buffer, ltoa(st.st_size)); + snprintf(buffer, sizeof buffer, + "%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x-%ld", + digest[0], digest[1], digest[2], digest[3], + digest[4], digest[5], digest[6], digest[7], + digest[8], digest[9], digest[10], digest[11], + digest[12], digest[13], digest[14], digest[15], + (long)st.st_size); } return m_strdup(buffer); } @@ -859,7 +861,7 @@ unsigned int scan_mp3_dir(char *path, int recurse, int reload, int share, int se count++; if (share && (nap_socket != -1)) { - sprintf(buffer, "\"%s\" %s %lu %u %u %ld", new->filename, + sprintf(buffer, "\"%s\" %s %lu %d %d %ld", new->filename, new->checksum, new->filesize, new->bitrate, new->freq, (long)new->time); send_ncommand(CMDS_ADDFILE, convertnap_dos(buffer)); @@ -969,7 +971,7 @@ Files *new; { for (new = fserv_files; new; new = new->next) { - fprintf(fp, "\"%s\" %s %lu %u %u %ld\n", + fprintf(fp, "\"%s\" %s %lu %d %d %ld\n", new->filename, new->checksum, new->filesize, new->bitrate, new->freq, (long)new->time); count++; @@ -1119,7 +1121,7 @@ Files *new; if (new->freq && new->bitrate) { - sprintf(buffer, "\"%s\" %s %lu %u %u %ld", name, + sprintf(buffer, "\"%s\" %s %lu %d %d %ld", name, new->checksum, new->filesize, new->bitrate, new->freq, (long)new->time); cmd = CMDS_ADDFILE; @@ -1537,7 +1539,6 @@ void nap_firewall_start(int snum) void napfile_read(int snum) { GetFile *gf; - char buffer[NAP_BUFFER_SIZE+1]; int rc; SocketList *s = get_socket(snum); @@ -1574,7 +1575,6 @@ void napfile_read(int snum) || !(gf = find_in_getfile(&napster_sendqueue, 0, nick, NULL, fbuff, -1, NAP_UPLOAD)) || (gf->write == -1)) { - memset(buff, 0, 80); if (!gf) sprintf(buff, "0INVALID REQUEST"); else @@ -1583,7 +1583,7 @@ void napfile_read(int snum) if ((gf = find_in_getfile(&napster_sendqueue, 1, nick, NULL, fbuff, -1, NAP_UPLOAD))) gf->socket = snum; } - write(snum, buff, strlen(buffer)); + write(snum, buff, strlen(buff)); nap_finished_file(snum, gf); return; } @@ -1597,7 +1597,6 @@ void napfile_read(int snum) gf->socket = snum; lseek(gf->write, SEEK_SET, gf->resume); set_socketinfo(snum, gf); - memset(buff, 0, 80); sprintf(buff, "%lu", gf->filesize); write(snum, buff, strlen(buff)); s->func_write = s->func_read; @@ -1617,11 +1616,10 @@ void napfile_read(int snum) void naplink_handleconnect(int snum) { - char buff[2*NAP_BUFFER_SIZE+1]; + char buff[2*NAP_BUFFER_SIZE+1] = { 0 }; SocketList *s; int rc; - memset(buff, 0, sizeof(buff) - 1); switch ((rc = recv(snum, buff, 4, MSG_PEEK))) {