Re: [PATCH] build system: prevent duplicate applet names

2018-11-27 Thread Denys Vlasenko
Applied, thanks!
On Sun, Nov 25, 2018 at 12:46 PM Ron Yorston  wrote:
>
> The embedded script feature makes it easier to create applets with
> duplicate names.  Currently in such cases the build succeeds but
> the resulting executable doesn't work as the developer intended.
>
> Catch duplicate names when the applet tables are being generated
> and make the build fail.
>
> Signed-off-by: Ron Yorston 
> ---
>  applets/applet_tables.c | 10 +-
>  1 file changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/applets/applet_tables.c b/applets/applet_tables.c
> index e3d10c83f..ce2037440 100644
> --- a/applets/applet_tables.c
> +++ b/applets/applet_tables.c
> @@ -84,7 +84,15 @@ int main(int argc, char **argv)
>
> qsort(applets, NUM_APPLETS, sizeof(applets[0]), cmp_name);
>
> -   if (!argv[1])
> +   for (i = j = 0; i < NUM_APPLETS-1; ++i) {
> +   if (cmp_name(applets+i, applets+i+1) == 0) {
> +   fprintf(stderr, "%s: duplicate applet name '%s'\n", 
> argv[0],
> +   applets[i].name);
> +   j = 1;
> +   }
> +   }
> +
> +   if (j != 0 || !argv[1])
> return 1;
> snprintf(tmp1, PATH_MAX, "%s.%u.new", argv[1], (int) getpid());
> i = open(tmp1, O_WRONLY | O_TRUNC | O_CREAT, 0666);
> --
> 2.19.1
>
> ___
> busybox mailing list
> busybox@busybox.net
> http://lists.busybox.net/mailman/listinfo/busybox
___
busybox mailing list
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox


[PATCH] build system: prevent duplicate applet names

2018-11-25 Thread Ron Yorston
The embedded script feature makes it easier to create applets with
duplicate names.  Currently in such cases the build succeeds but
the resulting executable doesn't work as the developer intended.

Catch duplicate names when the applet tables are being generated
and make the build fail.

Signed-off-by: Ron Yorston 
---
 applets/applet_tables.c | 10 +-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/applets/applet_tables.c b/applets/applet_tables.c
index e3d10c83f..ce2037440 100644
--- a/applets/applet_tables.c
+++ b/applets/applet_tables.c
@@ -84,7 +84,15 @@ int main(int argc, char **argv)
 
qsort(applets, NUM_APPLETS, sizeof(applets[0]), cmp_name);
 
-   if (!argv[1])
+   for (i = j = 0; i < NUM_APPLETS-1; ++i) {
+   if (cmp_name(applets+i, applets+i+1) == 0) {
+   fprintf(stderr, "%s: duplicate applet name '%s'\n", 
argv[0],
+   applets[i].name);
+   j = 1;
+   }
+   }
+
+   if (j != 0 || !argv[1])
return 1;
snprintf(tmp1, PATH_MAX, "%s.%u.new", argv[1], (int) getpid());
i = open(tmp1, O_WRONLY | O_TRUNC | O_CREAT, 0666);
-- 
2.19.1

___
busybox mailing list
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox