← Commit list

081d6d438

Rob Landley
Rob Landley
2006-02-20
SOURCE BUG Duration: 3s

Subject

getdomainname() isn't guaranteed to null terminate the string if it was truncated for length. SVN 14135 made sure that the truncated version would always be null terminated. SVN 14144 broke this for no readily apparent reason, and I have no idea what it was even trying to accomplish. Reverted.

SOURCE BUG

This commit was genuinely broken at the time (not related to our build system): scripts/config/mkconfigs.c (2005-08-01 - 2006-10-05 arasi) uretilen bbconfigopts.h icine .config satirlarini kacissiz, ham newline'larla gömüyordu - gecerli C degildi, busybox'un kendi bb_mkdep araci bile parse edemiyordu (7d219aab7 ile duzeltildi, mkconfigs shell scripte cevrildi)

→ Bu hatanin tam hikayesini ve duzeltme diffini gor

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Debian 14.2.0-19) 14.2.0

—

Build Log

(log yok)

Commit Diff GitHub →

libbb/login.c+6 -6
@@ -37,7 +37,7 @@ void print_login_issue(const char *issue_file, const char *tty)
{
FILE *fd;
int c;
- char buf[256+2];
+ char buf[256];
const char *outbuf;
time_t t;
struct utsname uts;
@@ -82,8 +82,8 @@ void print_login_issue(const char *issue_file, const char *tty)
case 'D':
case 'o':
- buf[0] = '\0';
- getdomainname(buf, sizeof(buf) - 1);
+ getdomainname(buf, sizeof(buf));
+ buf[sizeof(buf) - 1] = '\0';
break;
case 'd':
@@ -95,8 +95,8 @@ void print_login_issue(const char *issue_file, const char *tty)
break;
case 'h':
- buf[0] = '\0';
gethostname(buf, sizeof(buf) - 1);
+ buf[sizeof(buf) - 1] = '\0';
break;
case 'l':
@@ -120,8 +120,8 @@ void print_login_prompt(void)
{
char buf[MAXHOSTNAMELEN+1];
- if(gethostname(buf, MAXHOSTNAMELEN) == 0)
- fputs(buf, stdout);
+ gethostname(buf, MAXHOSTNAMELEN);
+ fputs(buf, stdout);
fputs(LOGIN, stdout);
fflush(stdout);