|
From: <abe...@us...> - 2013-03-29 22:12:59
|
Revision: 6023
http://astlinux.svn.sourceforge.net/astlinux/?rev=6023&view=rev
Author: abelbeck
Date: 2013-03-29 22:12:47 +0000 (Fri, 29 Mar 2013)
Log Message:
-----------
host-makedevs, fix makedevs to allow longer path names as per Buildroot upstream...
Makedevs path name is currently limited to 40, changed it to PATH_MAX 4096 from linux/include/linux/limits.h
Modified Paths:
--------------
branches/1.0/package/makedevs/makedevs.c
Modified: branches/1.0/package/makedevs/makedevs.c
===================================================================
--- branches/1.0/package/makedevs/makedevs.c 2013-03-29 21:50:54 UTC (rev 6022)
+++ branches/1.0/package/makedevs/makedevs.c 2013-03-29 22:12:47 UTC (rev 6023)
@@ -410,7 +410,7 @@
unsigned int count = 0;
unsigned int increment = 0;
unsigned int start = 0;
- char name[41];
+ char name[4096];
char user[41];
char group[41];
char *full_name;
@@ -419,7 +419,7 @@
linenum++;
- if ((2 > sscanf(line, "%40s %c %o %40s %40s %u %u %u %u %u", name,
+ if ((2 > sscanf(line, "%4095s %c %o %40s %40s %u %u %u %u %u", name,
&type, &mode, user, group, &major,
&minor, &start, &increment, &count)) ||
((major | minor | start | count | increment) > 0xfffff))
@@ -536,5 +536,5 @@
}
fclose(table);
- return 0;
+ return ret;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <abe...@us...> - 2016-02-01 12:46:10
|
Revision: 7491
http://sourceforge.net/p/astlinux/code/7491
Author: abelbeck
Date: 2016-02-01 12:46:08 +0000 (Mon, 01 Feb 2016)
Log Message:
-----------
build system, package/makedevs: use the rooted /etc/passwd and /etc/group
Ref: https://git.busybox.net/buildroot/commit/package?id=95dda394d9f2487d54c6ec529c3f9a7fd341a582
Modified Paths:
--------------
branches/1.0/package/makedevs/makedevs.c
Modified: branches/1.0/package/makedevs/makedevs.c
===================================================================
--- branches/1.0/package/makedevs/makedevs.c 2016-02-01 12:27:16 UTC (rev 7490)
+++ branches/1.0/package/makedevs/makedevs.c 2016-02-01 12:46:08 UTC (rev 7491)
@@ -37,6 +37,9 @@
const char *bb_applet_name;
+#define PASSWD_PATH "etc/passwd" /* MUST be relative */
+#define GROUP_PATH "etc/group" /* MUST be relative */
+
void bb_verror_msg(const char *s, va_list p)
{
fflush(stdout);
@@ -251,10 +254,20 @@
long my_getpwnam(const char *name)
{
struct passwd *myuser;
+ FILE *stream;
- myuser = getpwnam(name);
- if (myuser==NULL)
- bb_error_msg_and_die("unknown user name: %s", name);
+ stream = bb_xfopen(PASSWD_PATH, "r");
+ while(1) {
+ errno = 0;
+ myuser = fgetpwent(stream);
+ if (myuser == NULL)
+ bb_error_msg_and_die("unknown user name: %s", name);
+ if (errno)
+ bb_perror_msg_and_die("fgetpwent");
+ if (!strcmp(name, myuser->pw_name))
+ break;
+ }
+ fclose(stream);
return myuser->pw_uid;
}
@@ -262,12 +275,22 @@
long my_getgrnam(const char *name)
{
struct group *mygroup;
+ FILE *stream;
- mygroup = getgrnam(name);
- if (mygroup==NULL)
- bb_error_msg_and_die("unknown group name: %s", name);
+ stream = bb_xfopen(GROUP_PATH, "r");
+ while(1) {
+ errno = 0;
+ mygroup = fgetgrent(stream);
+ if (mygroup == NULL)
+ bb_error_msg_and_die("unknown group name: %s", name);
+ if (errno)
+ bb_perror_msg_and_die("fgetgrent");
+ if (!strcmp(name, mygroup->gr_name))
+ break;
+ }
+ fclose(stream);
- return (mygroup->gr_gid);
+ return mygroup->gr_gid;
}
unsigned long get_ug_id(const char *s, long (*my_getxxnam)(const char *))
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <abe...@us...> - 2016-11-06 14:13:17
|
Revision: 7933
http://sourceforge.net/p/astlinux/code/7933
Author: abelbeck
Date: 2016-11-06 14:13:15 +0000 (Sun, 06 Nov 2016)
Log Message:
-----------
build system, host-makedevs, resync device creation with upstream busybox
Ref: https://git.buildroot.net/buildroot/commit/package/makedevs?id=ab1b6f7df4355244dfc54b877889ff7a3cde02a0
Modified Paths:
--------------
branches/1.0/package/makedevs/makedevs.c
Modified: branches/1.0/package/makedevs/makedevs.c
===================================================================
--- branches/1.0/package/makedevs/makedevs.c 2016-11-06 13:53:32 UTC (rev 7932)
+++ branches/1.0/package/makedevs/makedevs.c 2016-11-06 14:13:15 UTC (rev 7933)
@@ -500,6 +500,8 @@
} else
{
dev_t rdev;
+ unsigned i;
+ char *full_name_inc;
if (type == 'p') {
mode |= S_IFIFO;
@@ -515,43 +517,24 @@
goto loop;
}
- if (count > 0) {
- int i;
- char *full_name_inc;
-
- full_name_inc = xmalloc(strlen(full_name) + 8);
- for (i = 0; i < count; i++) {
- sprintf(full_name_inc, "%s%d", full_name, start + i);
- rdev = makedev(major, minor + i * increment);
- if (mknod(full_name_inc, mode, rdev) == -1) {
- bb_perror_msg("line %d: Couldnt create node %s", linenum, full_name_inc);
- ret = EXIT_FAILURE;
- }
- else if (chown(full_name_inc, uid, gid) == -1) {
- bb_perror_msg("line %d: chown failed for %s", linenum, full_name_inc);
- ret = EXIT_FAILURE;
- }
- if ((mode != -1) && (chmod(full_name_inc, mode) < 0)){
- bb_perror_msg("line %d: chmod failed for %s", linenum, full_name_inc);
- ret = EXIT_FAILURE;
- }
- }
- free(full_name_inc);
- } else {
- rdev = makedev(major, minor);
- if (mknod(full_name, mode, rdev) == -1) {
- bb_perror_msg("line %d: Couldnt create node %s", linenum, full_name);
+ full_name_inc = xmalloc(strlen(full_name) + sizeof(int)*3 + 2);
+ if (count)
+ count--;
+ for (i = start; i <= start + count; i++) {
+ sprintf(full_name_inc, count ? "%s%u" : "%s", full_name, i);
+ rdev = makedev(major, minor + (i - start) * increment);
+ if (mknod(full_name_inc, mode, rdev) < 0) {
+ bb_perror_msg("line %d: can't create node %s", linenum, full_name_inc);
ret = EXIT_FAILURE;
- }
- else if (chown(full_name, uid, gid) == -1) {
- bb_perror_msg("line %d: chown failed for %s", linenum, full_name);
+ } else if (chown(full_name_inc, uid, gid) < 0) {
+ bb_perror_msg("line %d: can't chown %s", linenum, full_name_inc);
ret = EXIT_FAILURE;
- }
- if ((mode != -1) && (chmod(full_name, mode) < 0)){
- bb_perror_msg("line %d: chmod failed for %s", linenum, full_name);
+ } else if (chmod(full_name_inc, mode) < 0) {
+ bb_perror_msg("line %d: can't chmod %s", linenum, full_name_inc);
ret = EXIT_FAILURE;
}
}
+ free(full_name_inc);
}
loop:
free(line);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <abe...@us...> - 2016-11-06 18:13:44
|
Revision: 7934
http://sourceforge.net/p/astlinux/code/7934
Author: abelbeck
Date: 2016-11-06 18:13:41 +0000 (Sun, 06 Nov 2016)
Log Message:
-----------
revert r7933
Revision Links:
--------------
http://sourceforge.net/p/astlinux/code/7933
Modified Paths:
--------------
branches/1.0/package/makedevs/makedevs.c
Modified: branches/1.0/package/makedevs/makedevs.c
===================================================================
--- branches/1.0/package/makedevs/makedevs.c 2016-11-06 14:13:15 UTC (rev 7933)
+++ branches/1.0/package/makedevs/makedevs.c 2016-11-06 18:13:41 UTC (rev 7934)
@@ -500,8 +500,6 @@
} else
{
dev_t rdev;
- unsigned i;
- char *full_name_inc;
if (type == 'p') {
mode |= S_IFIFO;
@@ -517,24 +515,43 @@
goto loop;
}
- full_name_inc = xmalloc(strlen(full_name) + sizeof(int)*3 + 2);
- if (count)
- count--;
- for (i = start; i <= start + count; i++) {
- sprintf(full_name_inc, count ? "%s%u" : "%s", full_name, i);
- rdev = makedev(major, minor + (i - start) * increment);
- if (mknod(full_name_inc, mode, rdev) < 0) {
- bb_perror_msg("line %d: can't create node %s", linenum, full_name_inc);
+ if (count > 0) {
+ int i;
+ char *full_name_inc;
+
+ full_name_inc = xmalloc(strlen(full_name) + 8);
+ for (i = 0; i < count; i++) {
+ sprintf(full_name_inc, "%s%d", full_name, start + i);
+ rdev = makedev(major, minor + i * increment);
+ if (mknod(full_name_inc, mode, rdev) == -1) {
+ bb_perror_msg("line %d: Couldnt create node %s", linenum, full_name_inc);
+ ret = EXIT_FAILURE;
+ }
+ else if (chown(full_name_inc, uid, gid) == -1) {
+ bb_perror_msg("line %d: chown failed for %s", linenum, full_name_inc);
+ ret = EXIT_FAILURE;
+ }
+ if ((mode != -1) && (chmod(full_name_inc, mode) < 0)){
+ bb_perror_msg("line %d: chmod failed for %s", linenum, full_name_inc);
+ ret = EXIT_FAILURE;
+ }
+ }
+ free(full_name_inc);
+ } else {
+ rdev = makedev(major, minor);
+ if (mknod(full_name, mode, rdev) == -1) {
+ bb_perror_msg("line %d: Couldnt create node %s", linenum, full_name);
ret = EXIT_FAILURE;
- } else if (chown(full_name_inc, uid, gid) < 0) {
- bb_perror_msg("line %d: can't chown %s", linenum, full_name_inc);
+ }
+ else if (chown(full_name, uid, gid) == -1) {
+ bb_perror_msg("line %d: chown failed for %s", linenum, full_name);
ret = EXIT_FAILURE;
- } else if (chmod(full_name_inc, mode) < 0) {
- bb_perror_msg("line %d: can't chmod %s", linenum, full_name_inc);
+ }
+ if ((mode != -1) && (chmod(full_name, mode) < 0)){
+ bb_perror_msg("line %d: chmod failed for %s", linenum, full_name);
ret = EXIT_FAILURE;
}
}
- free(full_name_inc);
}
loop:
free(line);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <abe...@us...> - 2016-11-06 22:45:29
|
Revision: 7935
http://sourceforge.net/p/astlinux/code/7935
Author: abelbeck
Date: 2016-11-06 22:45:27 +0000 (Sun, 06 Nov 2016)
Log Message:
-----------
build system, host-makedevs, implement upstream Buildroot fixes, one 'mknod' call added since we are using fakeroot
Ref: https://git.buildroot.net/buildroot/commit/package/makedevs?id=ab1b6f7df4355244dfc54b877889ff7a3cde02a0
Ref: https://git.buildroot.net/buildroot/commit/package/makedevs?id=c85cd189dc1ded92b78c5968860ff447ec9815ad
Modified Paths:
--------------
branches/1.0/package/makedevs/makedevs.c
Modified: branches/1.0/package/makedevs/makedevs.c
===================================================================
--- branches/1.0/package/makedevs/makedevs.c 2016-11-06 18:13:41 UTC (rev 7934)
+++ branches/1.0/package/makedevs/makedevs.c 2016-11-06 22:45:27 UTC (rev 7935)
@@ -500,6 +500,9 @@
} else
{
dev_t rdev;
+ unsigned i;
+ char *full_name_inc;
+ struct stat st;
if (type == 'p') {
mode |= S_IFIFO;
@@ -515,43 +518,38 @@
goto loop;
}
- if (count > 0) {
- int i;
- char *full_name_inc;
-
- full_name_inc = xmalloc(strlen(full_name) + 8);
- for (i = 0; i < count; i++) {
- sprintf(full_name_inc, "%s%d", full_name, start + i);
- rdev = makedev(major, minor + i * increment);
- if (mknod(full_name_inc, mode, rdev) == -1) {
- bb_perror_msg("line %d: Couldnt create node %s", linenum, full_name_inc);
+ full_name_inc = xmalloc(strlen(full_name) + sizeof(int)*3 + 2);
+ if (count)
+ count--;
+ for (i = start; i <= start + count; i++) {
+ sprintf(full_name_inc, count ? "%s%u" : "%s", full_name, i);
+ rdev = makedev(major, minor + (i - start) * increment);
+ mknod(full_name_inc, mode, rdev); /* mknod required if using fakeroot */
+ if (stat(full_name_inc, &st) == 0) {
+ if ((mode & S_IFMT) != (st.st_mode & S_IFMT)) {
+ bb_error_msg("line %d: node %s exists but is of wrong file type", linenum, full_name_inc);
ret = EXIT_FAILURE;
+ continue;
}
- else if (chown(full_name_inc, uid, gid) == -1) {
- bb_perror_msg("line %d: chown failed for %s", linenum, full_name_inc);
+ if (st.st_rdev != rdev) {
+ bb_error_msg("line %d: node %s exists but is wrong device number", linenum, full_name_inc);
ret = EXIT_FAILURE;
+ continue;
}
- if ((mode != -1) && (chmod(full_name_inc, mode) < 0)){
- bb_perror_msg("line %d: chmod failed for %s", linenum, full_name_inc);
- ret = EXIT_FAILURE;
- }
- }
- free(full_name_inc);
- } else {
- rdev = makedev(major, minor);
- if (mknod(full_name, mode, rdev) == -1) {
- bb_perror_msg("line %d: Couldnt create node %s", linenum, full_name);
+ } else if (mknod(full_name_inc, mode, rdev) < 0) {
+ bb_perror_msg("line %d: can't create node %s", linenum, full_name_inc);
ret = EXIT_FAILURE;
+ continue;
}
- else if (chown(full_name, uid, gid) == -1) {
- bb_perror_msg("line %d: chown failed for %s", linenum, full_name);
+ if (chown(full_name_inc, uid, gid) < 0) {
+ bb_perror_msg("line %d: can't chown %s", linenum, full_name_inc);
ret = EXIT_FAILURE;
- }
- if ((mode != -1) && (chmod(full_name, mode) < 0)){
- bb_perror_msg("line %d: chmod failed for %s", linenum, full_name);
+ } else if (chmod(full_name_inc, mode) < 0) {
+ bb_perror_msg("line %d: can't chmod %s", linenum, full_name_inc);
ret = EXIT_FAILURE;
}
}
+ free(full_name_inc);
}
loop:
free(line);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <abe...@us...> - 2016-11-28 15:04:20
|
Revision: 7995
http://sourceforge.net/p/astlinux/code/7995
Author: abelbeck
Date: 2016-11-28 15:04:18 +0000 (Mon, 28 Nov 2016)
Log Message:
-----------
makedevs, revert cherry-picked upstream Buildroot fix, a part of r7935
Ref: https://git.buildroot.net/buildroot/commit/package?id=4c6d5e33ae1bdfc85c9734897c357a804bfd7435
Ref: http://lists.busybox.net/pipermail/buildroot/2016-November/177861.html
Revision Links:
--------------
http://sourceforge.net/p/astlinux/code/7935
Modified Paths:
--------------
branches/1.0/package/makedevs/makedevs.c
Modified: branches/1.0/package/makedevs/makedevs.c
===================================================================
--- branches/1.0/package/makedevs/makedevs.c 2016-11-28 14:09:47 UTC (rev 7994)
+++ branches/1.0/package/makedevs/makedevs.c 2016-11-28 15:04:18 UTC (rev 7995)
@@ -502,7 +502,6 @@
dev_t rdev;
unsigned i;
char *full_name_inc;
- struct stat st;
if (type == 'p') {
mode |= S_IFIFO;
@@ -524,24 +523,10 @@
for (i = start; i <= start + count; i++) {
sprintf(full_name_inc, count ? "%s%u" : "%s", full_name, i);
rdev = makedev(major, minor + (i - start) * increment);
- mknod(full_name_inc, mode, rdev); /* mknod required if using fakeroot */
- if (stat(full_name_inc, &st) == 0) {
- if ((mode & S_IFMT) != (st.st_mode & S_IFMT)) {
- bb_error_msg("line %d: node %s exists but is of wrong file type", linenum, full_name_inc);
- ret = EXIT_FAILURE;
- continue;
- }
- if (st.st_rdev != rdev) {
- bb_error_msg("line %d: node %s exists but is wrong device number", linenum, full_name_inc);
- ret = EXIT_FAILURE;
- continue;
- }
- } else if (mknod(full_name_inc, mode, rdev) < 0) {
+ if (mknod(full_name_inc, mode, rdev) < 0) {
bb_perror_msg("line %d: can't create node %s", linenum, full_name_inc);
ret = EXIT_FAILURE;
- continue;
- }
- if (chown(full_name_inc, uid, gid) < 0) {
+ } else if (chown(full_name_inc, uid, gid) < 0) {
bb_perror_msg("line %d: can't chown %s", linenum, full_name_inc);
ret = EXIT_FAILURE;
} else if (chmod(full_name_inc, mode) < 0) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|