[OpenWrt-Devel] [PATCH] make sure strings will always be 0-terminated.
From the man page: [...] The strncpy() function is similar, except that at most n bytes of src are copied. Warning: If there is no null byte among the first n bytes of src, the string placed in dest will not be null-terminated. [...] Signed-off-by: Frank Meerkötter --- system-linux.c | 16 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/system-linux.c b/system-linux.c index eb73e95..17143cb 100644 --- a/system-linux.c +++ b/system-linux.c @@ -284,7 +284,7 @@ static int system_bridge_if(const char *bridge, struct device *dev, int cmd, voi ifr.ifr_ifindex = dev->ifindex; else ifr.ifr_data = data; - strncpy(ifr.ifr_name, bridge, sizeof(ifr.ifr_name)); + strncpy(ifr.ifr_name, bridge, sizeof(ifr.ifr_name) - 1); return ioctl(sock_ioctl, cmd, &ifr); } @@ -345,7 +345,7 @@ int system_bridge_delif(struct device *bridge, struct device *dev) static int system_if_resolve(struct device *dev) { struct ifreq ifr; - strncpy(ifr.ifr_name, dev->ifname, sizeof(ifr.ifr_name)); + strncpy(ifr.ifr_name, dev->ifname, sizeof(ifr.ifr_name) - 1); if (!ioctl(sock_ioctl, SIOCGIFINDEX, &ifr)) return ifr.ifr_ifindex; else @@ -357,7 +357,7 @@ static int system_if_flags(const char *ifname, unsigned add, unsigned rem) struct ifreq ifr; memset(&ifr, 0, sizeof(ifr)); - strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name)); + strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name) - 1); ioctl(sock_ioctl, SIOCGIFFLAGS, &ifr); ifr.ifr_flags |= add; ifr.ifr_flags &= ~rem; @@ -599,7 +599,7 @@ static int system_vlan(struct device *dev, int id) ifr.cmd = ADD_VLAN_CMD; ifr.u.VID = id; } - strncpy(ifr.device1, dev->ifname, sizeof(ifr.device1)); + strncpy(ifr.device1, dev->ifname, sizeof(ifr.device1) - 1); return ioctl(sock_ioctl, SIOCSIFVLAN, &ifr); } @@ -619,7 +619,7 @@ system_if_get_settings(struct device *dev, struct device_settings *s) struct ifreq ifr; memset(&ifr, 0, sizeof(ifr)); - strncpy(ifr.ifr_name, dev->ifname, sizeof(ifr.ifr_name)); + strncpy(ifr.ifr_name, dev->ifname, sizeof(ifr.ifr_name) - 1); if (ioctl(sock_ioctl, SIOCGIFMTU, &ifr) == 0) { s->mtu = ifr.ifr_mtu; @@ -643,7 +643,7 @@ system_if_apply_settings(struct device *dev, struct device_settings *s) struct ifreq ifr; memset(&ifr, 0, sizeof(ifr)); - strncpy(ifr.ifr_name, dev->ifname, sizeof(ifr.ifr_name)); + strncpy(ifr.ifr_name, dev->ifname, sizeof(ifr.ifr_name) - 1); if (s->flags & DEV_OPT_MTU) { ifr.ifr_mtu = s->mtu; if (ioctl(sock_ioctl, SIOCSIFMTU, &ifr) < 0) @@ -1010,7 +1010,7 @@ static int tunnel_ioctl(const char *name, int cmd, void *p) struct ifreq ifr; memset(&ifr, 0, sizeof(ifr)); - strncpy(ifr.ifr_name, name, sizeof(ifr.ifr_name)); + strncpy(ifr.ifr_name, name, sizeof(ifr.ifr_name) - 1); ifr.ifr_ifru.ifru_data = p; return ioctl(sock_ioctl, cmd, &ifr); } @@ -1073,7 +1073,7 @@ int system_add_ip_tunnel(const char *name, struct blob_attr *attr) p.iph.ttl = val; } - strncpy(p.name, name, sizeof(p.name)); + strncpy(p.name, name, sizeof(p.name) - 1); if (tunnel_ioctl(base, SIOCADDTUNNEL, &p) < 0) return -1; -- 1.7.10.4 ___ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel
[OpenWrt-Devel] [PATCH] fix error checking of asprintf
see man asprintf [...] RETURN VALUE When successful, these functions return the number of bytes printed, just like sprintf(3). If memory allocation wasn't possible, or some other error occurs, these functions will return -1, and the contents of strp is undefined. Signed-off-by: Frank Meerkötter --- ubus.c |3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ubus.c b/ubus.c index 7b85930..d6d4188 100644 --- a/ubus.c +++ b/ubus.c @@ -727,8 +727,7 @@ netifd_ubus_add_interface(struct interface *iface) struct ubus_object *obj = &iface->ubus; char *name = NULL; - asprintf(&name, "%s.interface.%s", main_object.name, iface->name); - if (!name) + if (asprintf(&name, "%s.interface.%s", main_object.name, iface->name) == -1) return; obj->name = name; -- 1.7.10.4 ___ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel
Re: [OpenWrt-Devel] [PATCH][netifd] corner case: make sure strings are always 0-terminated
On 03/12/12 13:56, Felix Fietkau wrote: > On 2012-12-03 1:42 PM, Frank Meerkötter wrote: >> Hi, >> >> i noticed that strncpy wasn't used correctly here. >> Please review/apply. >> >> Patch follows: >> >> From the man page: >> [...] >> The strncpy() function is similar, except that at most n >> bytes of src are copied. Warning: If there is no null byte >> among the first n bytes of src, the string placed in dest >> will not be null-terminated. >> [...] > As far as I know, this is not a problem for these ioctls. The kernel > should handle this corner case properly. I agree that it is not a real problem but i would argue that the patch still has value. By using the canonical form of strncpy() its easy for everyone reading the source to verify that its correct without inspecting other layers. It is also giving a bad example which might get "reused" at other places where it would matter. Kind Regards, Frank ___ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel
[OpenWrt-Devel] [PATCH][netifd] corner case: make sure strings are always 0-terminated
Hi, i noticed that strncpy wasn't used correctly here. Please review/apply. Patch follows: >From the man page: [...] The strncpy() function is similar, except that at most n bytes of src are copied. Warning: If there is no null byte among the first n bytes of src, the string placed in dest will not be null-terminated. [...] Signed-off-by: Frank Meerkötter --- system-linux.c | 16 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/system-linux.c b/system-linux.c index eb73e95..17143cb 100644 --- a/system-linux.c +++ b/system-linux.c @@ -284,7 +284,7 @@ static int system_bridge_if(const char *bridge, struct device *dev, int cmd, voi ifr.ifr_ifindex = dev->ifindex; else ifr.ifr_data = data; - strncpy(ifr.ifr_name, bridge, sizeof(ifr.ifr_name)); + strncpy(ifr.ifr_name, bridge, sizeof(ifr.ifr_name) - 1); return ioctl(sock_ioctl, cmd, &ifr); } @@ -345,7 +345,7 @@ int system_bridge_delif(struct device *bridge, struct device *dev) static int system_if_resolve(struct device *dev) { struct ifreq ifr; - strncpy(ifr.ifr_name, dev->ifname, sizeof(ifr.ifr_name)); + strncpy(ifr.ifr_name, dev->ifname, sizeof(ifr.ifr_name) - 1); if (!ioctl(sock_ioctl, SIOCGIFINDEX, &ifr)) return ifr.ifr_ifindex; else @@ -357,7 +357,7 @@ static int system_if_flags(const char *ifname, unsigned add, unsigned rem) struct ifreq ifr; memset(&ifr, 0, sizeof(ifr)); - strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name)); + strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name) - 1); ioctl(sock_ioctl, SIOCGIFFLAGS, &ifr); ifr.ifr_flags |= add; ifr.ifr_flags &= ~rem; @@ -599,7 +599,7 @@ static int system_vlan(struct device *dev, int id) ifr.cmd = ADD_VLAN_CMD; ifr.u.VID = id; } - strncpy(ifr.device1, dev->ifname, sizeof(ifr.device1)); + strncpy(ifr.device1, dev->ifname, sizeof(ifr.device1) - 1); return ioctl(sock_ioctl, SIOCSIFVLAN, &ifr); } @@ -619,7 +619,7 @@ system_if_get_settings(struct device *dev, struct device_settings *s) struct ifreq ifr; memset(&ifr, 0, sizeof(ifr)); - strncpy(ifr.ifr_name, dev->ifname, sizeof(ifr.ifr_name)); + strncpy(ifr.ifr_name, dev->ifname, sizeof(ifr.ifr_name) - 1); if (ioctl(sock_ioctl, SIOCGIFMTU, &ifr) == 0) { s->mtu = ifr.ifr_mtu; @@ -643,7 +643,7 @@ system_if_apply_settings(struct device *dev, struct device_settings *s) struct ifreq ifr; memset(&ifr, 0, sizeof(ifr)); - strncpy(ifr.ifr_name, dev->ifname, sizeof(ifr.ifr_name)); + strncpy(ifr.ifr_name, dev->ifname, sizeof(ifr.ifr_name) - 1); if (s->flags & DEV_OPT_MTU) { ifr.ifr_mtu = s->mtu; if (ioctl(sock_ioctl, SIOCSIFMTU, &ifr) < 0) @@ -1010,7 +1010,7 @@ static int tunnel_ioctl(const char *name, int cmd, void *p) struct ifreq ifr; memset(&ifr, 0, sizeof(ifr)); - strncpy(ifr.ifr_name, name, sizeof(ifr.ifr_name)); + strncpy(ifr.ifr_name, name, sizeof(ifr.ifr_name) - 1); ifr.ifr_ifru.ifru_data = p; return ioctl(sock_ioctl, cmd, &ifr); } @@ -1073,7 +1073,7 @@ int system_add_ip_tunnel(const char *name, struct blob_attr *attr) p.iph.ttl = val; } - strncpy(p.name, name, sizeof(p.name)); + strncpy(p.name, name, sizeof(p.name) - 1); if (tunnel_ioctl(base, SIOCADDTUNNEL, &p) < 0) return -1; -- 1.7.10.4 ___ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel
Re: [OpenWrt-Devel] [PATCH][netifd] fix error checking of asprintf
On 03/12/12 10:43, Felix Fietkau wrote: > On 2012-11-22 3:03 PM, Frank Meerkötter wrote: >> Hi, >> >> while building with -D_FORTIFY_SOURCE i noticed a small problem in >> how netifd is using asprintf(). To check if an allocation by asprintf() >> worked or not the return value must be checked. Checking the pointer >> argument is undefined. >> >> Please review and apply (for now i have created a patch against the package, >> fixing it upstream might be the way to go). > Please send a patch that I can 'git am' in the netifd git tree. I don't > want to have any files in netifd/patches in trunk. > Patch follows: see man asprintf [...] RETURN VALUE When successful, these functions return the number of bytes printed, just like sprintf(3). If memory allocation wasn't possible, or some other error occurs, these functions will return -1, and the contents of strp is undefined. Signed-off-by: Frank Meerkötter --- ubus.c |3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ubus.c b/ubus.c index 7b85930..d6d4188 100644 --- a/ubus.c +++ b/ubus.c @@ -727,8 +727,7 @@ netifd_ubus_add_interface(struct interface *iface) struct ubus_object *obj = &iface->ubus; char *name = NULL; - asprintf(&name, "%s.interface.%s", main_object.name, iface->name); - if (!name) + if (asprintf(&name, "%s.interface.%s", main_object.name, iface->name) == -1) return; obj->name = name; -- 1.7.10.4 ___ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel
[OpenWrt-Devel] [PATCH] dsl support for the luci webinterface
Hi, this patch is the work of* *Lee Essen which he posted here in January. https://lists.openwrt.org/pipermail/openwrt-devel/2012-January/013602.html Unfortunately not everything was merged back then. The integration into the web-ui was lost. I have rebased the patch against the current trunk and also did a minor fix to make it work against the current version of the dsl_control.sh script. Please review an apply. Patch follows: --- --- a/modules/admin-full/luasrc/view/admin_status/index.htm +++ b/modules/admin-full/luasrc/view/admin_status/index.htm @@ -21,6 +21,7 @@ $Id: index.htm 9069 2012-08-17 15:06:46Z local has_dhcp = luci.fs.access("/etc/config/dhcp") local has_wifi = luci.fs.stat("/etc/config/wireless") has_wifi = has_wifi and has_wifi.size > 0 + local has_dsl = luci.fs.stat("/etc/init.d/dsl_control") if luci.http.formvalue("status") == "1" then local ntm = require "luci.model.network".init() @@ -79,6 +80,12 @@ $Id: index.htm 9069 2012-08-17 15:06:46Z } end + if has_dsl then + local dsl_stat = luci.sys.exec("/etc/init.d/dsl_control lucistat") + local dsl_func = loadstring(dsl_stat) + rv.dsl = dsl_func() + end + luci.http.prepare_content("application/json") luci.http.write_json(rv) @@ -213,6 +220,29 @@ $Id: index.htm 9069 2012-08-17 15:06:46Z } <% end %> + <% if has_dsl then %> + var dsl_i = document.getElementById('dsl_i'); + var dsl_s = document.getElementById('dsl_s'); + + var s = String.format( + '<%:Status%>: %s' + + '<%:Line State%>: %s [0x%x]' + + '<%:Line Speed%>: %s/s / %s/s' + + '<%:Line Attenuation%>: %s dB / %s dB' + + '<%:Noise Margin%>: %s dB / %s dB', + info.dsl.line_state, info.dsl.line_state_detail, + info.dsl.line_state_num, + info.dsl.data_rate_down_s, info.dsl.data_rate_up_s, + info.dsl.line_attenuation_down, info.dsl.line_attenuation_up, + info.dsl.noise_margin_down, info.dsl.noise_margin_up + ); + dsl_s.innerHTML = String.format('%s', s); + dsl_i.innerHTML = String.format( + '' + + 'ADSL' + ); + <% end %> + <% if has_dhcp then %> var ls = document.getElementById('lease_status_table'); if (ls) @@ -588,6 +618,20 @@ $Id: index.htm 9069 2012-08-17 15:06:46Z <% end %> + +<% if has_dsl then %> + + <%:ADSL%> + + <%:ADSL Status%> + + ? + <%:Collecting data...%> + + + + +<% end %> <% if has_wifi then %> ___ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel
Re: [OpenWrt-Devel] DSL support and luci integration
On 27/11/12 12:32, Jo-Philipp Wich wrote: > -BEGIN PGP SIGNED MESSAGE- > Hash: SHA1 > > Why is there even a need for dedicated DSL control in the gui? > Shouldn't the normal per-interface ifup/ifdown be enough? The patch to the web-ui isn't about control, but about DSL status information. Frank ___ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel
Re: [OpenWrt-Devel] DSL support and luci integration
On 27/11/12 12:28, John Crispin wrote: > On 27/11/12 12:23, Frank Meerkötter wrote: >> Hi, >> >> back in January there was a discussion on how to integrate DSL >> into Luci. >> >> https://lists.openwrt.org/pipermail/openwrt-devel/2012-January/013587.html >> >> A patch was presented which only got partially merged. The >> dsl_control.sh is there, the integration into the web-ui seems >> to be missing (AA& trunk). >> >> What happened to the web-ui part? > > got lost durig the release i guess > > would be nice if the webui part could be rebased and resubmitted I'll look into it. Frank ___ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel
[OpenWrt-Devel] DSL support and luci integration
Hi, back in January there was a discussion on how to integrate DSL into Luci. https://lists.openwrt.org/pipermail/openwrt-devel/2012-January/013587.html A patch was presented which only got partially merged. The dsl_control.sh is there, the integration into the web-ui seems to be missing (AA & trunk). What happened to the web-ui part? Also there was a discussion about replacing the DSL status reporting (and also control?) with a netlink based solution. What is the status of that? Kind Regards, Frank ___ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel
Re: [OpenWrt-Devel] musl patches are breaking the eglibc build
On 25/11/12 12:41, Florian Fainelli wrote: [...] >> Whoops, sorry about that. >> >>> Reverting >>> 4cf1359d5dc38debc89834d895f9a3951044bf90 >>> [package] iptables: add some musl portability fixes >>> fixes the building of iptables. >>> >>> Reverting >>> acd937382fefda95988b6dc279cf8989be4d6747 >>> [buildroot] add preliminary support for musl >>> fixes the building of the hotplug2 package. > > What is wrong with the hotplug2 package build? I don't have any problem > building it here. I did a make clean && make and now it just works. Sorry for bothering you. iptables builds fine now, thanks! Regards, Frank ___ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel
Re: [OpenWrt-Devel] [iptables] iptables broken ?
On 24/11/12 20:49, shazz wrote: > Hi, > > my 2 builds failed yesterday : > mips-openwrt-linux-gnu-gcc > -Wp,-MMD,./.libxt_hashlimit.oo.d,-MT,libxt_hashlimit.oo [...] > error: nested redefinition of 'enum tcp_ca_state' > /var/www/LOG/openwrt/tpl703n/trunk/build_dir/linux-ar71xx_generic_eglibc-2.16/linux-3.3.8/user_headers/include/linux/tcp.h:117:6: > error: redeclaration of 'enum tcp_ca_state' > In file included from libxt_osf.c:36:0: > ... > > and a lot more redefinition errors. > > Any idea ? Revert 4cf1359d5dc38debc89834d895f9a3951044bf90 [package] iptables: add some musl portability fixes as a workaround. Regards, Frank ___ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel
[OpenWrt-Devel] musl patches are breaking the eglibc build
Hi Florian, your recent work to add support for the musl-libc is breaking the build for eglibc-based toolchains. Reverting 4cf1359d5dc38debc89834d895f9a3951044bf90 [package] iptables: add some musl portability fixes fixes the building of iptables. Reverting acd937382fefda95988b6dc279cf8989be4d6747 [buildroot] add preliminary support for musl fixes the building of the hotplug2 package. Could you please have a look? Thanks, Frank ___ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel
[OpenWrt-Devel] [PATCH][netifd] fix error checking of asprintf
Hi, while building with -D_FORTIFY_SOURCE i noticed a small problem in how netifd is using asprintf(). To check if an allocation by asprintf() worked or not the return value must be checked. Checking the pointer argument is undefined. Please review and apply (for now i have created a patch against the package, fixing it upstream might be the way to go). Regards, Frank --- commit 626874984862ccb31dd5ccea378113d26acdb218 Author: Frank Meerkötter Date: Thu Nov 22 14:51:22 2012 +0100 fix error checking of asprintf $ man asprintf [...] RETURN VALUE When successful, these functions return the number of bytes printed, just like sprintf(3). If memory allocation wasn't possible, or some other error occurs, these functions will return -1, and the contents of strp is undefined. diff --git a/trunk/package/network/config/netifd/patches/020-fix_asprintf_api_usage.patch b/trunk/package/network/config/netifd/patches/020-fix_asprintf_api_ new file mode 100644 index 000..b31efa7 --- /dev/null +++ b/trunk/package/network/config/netifd/patches/020-fix_asprintf_api_usage.patch @@ -0,0 +1,12 @@ +--- a/ubus.c b/ubus.c +@@ -727,8 +727,7 @@ netifd_ubus_add_interface(struct interfa + struct ubus_object *obj = &iface->ubus; + char *name = NULL; + +- asprintf(&name, "%s.interface.%s", main_object.name, iface->name); +- if (!name) ++ if (asprintf(&name, "%s.interface.%s", main_object.name, iface->name) == -1) + return; + + obj->name = name; ___ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel
[OpenWrt-Devel] [PATCH][package] make ltq-dsl-app compile with an eglibc-based toolchain
Hi, i had problems building the ltq-dsl-app when switching from uclibc to eglibc. This patch is adding a needed include, adds a configure test to figure out where clock_gettime() is located and runs autoreconfigurer afterwards. Please review/apply. Signed-Off-By: Frank Meerkötter Patch follows: --- commit 25d6dca9286dd848c11e5fc7598f8cb1ab36cf39 Author: Frank Meerkötter Date: Thu Nov 22 10:12:14 2012 +0100 Make ltq-dsl-app compile with an eglibc-based toolchain diff --git a/trunk/package/network/config/ltq-dsl-app/Makefile b/trunk/package/network/config/ltq-dsl-app/Makefile index 664bc5d..37a72ee 100644 --- a/trunk/package/network/config/ltq-dsl-app/Makefile +++ b/trunk/package/network/config/ltq-dsl-app/Makefile @@ -17,6 +17,8 @@ PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources/ PKG_MD5SUM:=ee315306626b68794d3d3636dabfe161 PKG_MAINTAINER:=John Crispin +PKG_FIXUP:=autoreconf + PKG_CONFIG_DEPENDS:=\ CONFIG_LTQ_DSL_ENABLE_SOAP \ CONFIG_LTQ_DSL_ENABLE_DSL_EVENT_POLLING diff --git a/trunk/package/network/config/ltq-dsl-app/patches/010-eglibc_compile_fix.patch b/trunk/package/network/config/ltq-dsl-app/patches/010-eglibc_comp new file mode 100644 index 000..268f868 --- /dev/null +++ b/trunk/package/network/config/ltq-dsl-app/patches/010-eglibc_compile_fix.patch @@ -0,0 +1,23 @@ +--- a/configure.in b/configure.in +@@ -29,6 +29,8 @@ AC_C_VOLATILE + #AC_FUNC_STRTOD + #AC_CHECK_FUNCS([ftime gethostbyname gettimeofday localtime_r memset select socket strchr strerror strstr strtoull]) + ++AC_SEARCH_LIBS([clock_gettime],[rt]) ++ + # + # save the configure arguments + # +--- a/src/dsl_cpe_linux.h b/src/dsl_cpe_linux.h +@@ -45,7 +45,8 @@ + #include + #include /* socket */ + #include /* semget */ +-#include/* sem_t */ ++#include/* sem_t */ ++#include + + #ifdef DSL_DEBUG_TOOL_INTERFACE + #include ___ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel
[OpenWrt-Devel] [PATCH] actually deploy atmarp and atmarpd and not just their libtool wrapper
Hi all, i noticed that due to a small error in the atm-tools package we are not deploying atmarp/atmarpd but instead the (useless) libtool-wrappers. Please review/apply. Signed-Off-By: Frank Meerkötter Patch follows: Index: package/linux-atm/Makefile === --- package/linux-atm/Makefile (revision 33887) +++ package/linux-atm/Makefile (working copy) @@ -100,7 +100,7 @@ define Package/atm-tools/install $(INSTALL_DIR) $(1)/usr/sbin/ - $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/arpd/atmarp{,d} $(1)/usr/sbin/ + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/atmarp{,d} $(1)/usr/sbin/ # #The following is disabled by default but still useful for some debugging ___ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel