On Wed, 12 Jun 2013 09:55:32 -0400 Hal Rosenstock <h...@dev.mellanox.co.il> wrote:
> From: Dan Ben Yosef <da...@dev.mellanox.co.il> > > Buffer may not have a null terminator if the source string's length is > equal to the buffer size. Good catch, but I think this is an issue in umad_get_cas_names! > > Signed-off-by: Dan Ben Yosef <da...@dev.mellanox.co.il> > Signed-off-by: Hal Rosenstock <h...@mellanox.com> > --- > src/ibstat.c | 3 ++- > 1 files changed, 2 insertions(+), 1 deletions(-) > > diff --git a/src/ibstat.c b/src/ibstat.c > index 665bb0a..acb9e8e 100644 > --- a/src/ibstat.c > +++ b/src/ibstat.c > @@ -279,6 +279,7 @@ int main(int argc, char *argv[]) > int dev_port = -1; > int n, i; > > + memset(names, 0, sizeof(names[0][0] * UMAD_MAX_DEVICES * > UMAD_CA_NAME_LEN)); I don't think you need this as it will not fix umad_get_cas_names. > const struct ibdiag_opt opts[] = { > {"list_of_cas", 'l', 0, NULL, "list all IB devices"}, > {"short", 's', 0, NULL, "short output"}, > @@ -314,7 +315,7 @@ int main(int argc, char *argv[]) > if (i >= n) > IBPANIC("'%s' IB device can't be found", argv[0]); > > - strncpy(names[i], argv[0], sizeof names[i]); > + strncpy(names[i], argv[0], sizeof names[i]-1); This is actually dead code. IBPANIC exits, if your linking to libibmad. Do you have a different IBPANIC which does not exit? Do you have a use case which hits this bug? [root@iqa-136 sbin]# ./ibstat myverylongca_name_0123456789_0123456789 ibpanic: [9262] main: 'myverylongca_name_0123456789_0123456789' IB device can't be found: Success [root@iqa-136 sbin]# ./ibstat notfoundca ibpanic: [9273] main: 'notfoundca' IB device can't be found: Success Ira > n = 1; > } > > -- > 1.7.8.2 > -- Ira Weiny <ira.we...@intel.com> -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html