Message ID | ebec6423-20f9-d866-1d07-9e6c94ce845c@huawei.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | problem about 'git am --rej' | expand |
Sorry for that, linux-4.4.y has included this patch. The problem actually is that: We reset to the commit before eead1c2ea250 ("netlabel: cope with NULL catmap") on linux-4.4.y, and apply this patch, the results show as below. Fuction 'cipso_v4_parsetag_rbm' and 'cipso_v4_parsetag_enum' has been changed, but the really function should be changed is 'cipso_v4_parsetag_rbm' and 'cipso_v4_parsetag_rng'. diff --git a/net/ipv4/cipso_ipv4.c b/net/ipv4/cipso_ipv4.c index 98ed5e43ab7b..209876615461 100644 --- a/net/ipv4/cipso_ipv4.c +++ b/net/ipv4/cipso_ipv4.c @@ -1343,7 +1343,8 @@ static int cipso_v4_parsetag_rbm(const struct cipso_v4_doi *doi_def, return ret_val; } - secattr->flags |= NETLBL_SECATTR_MLS_CAT; + if (secattr->attr.mls.cat) + secattr->flags |= NETLBL_SECATTR_MLS_CAT; } return 0; @@ -1434,7 +1435,8 @@ static int cipso_v4_parsetag_enum(const struct cipso_v4_doi *doi_def, return ret_val; } - secattr->flags |= NETLBL_SECATTR_MLS_CAT; + if (secattr->attr.mls.cat) + secattr->flags |= NETLBL_SECATTR_MLS_CAT; } return 0; diff --git a/net/netlabel/netlabel_kapi.c b/net/netlabel/netlabel_kapi.c index bfa2b6d5b5cf..25ab12e25e05 100644 --- a/net/netlabel/netlabel_kapi.c +++ b/net/netlabel/netlabel_kapi.c @@ -605,6 +605,12 @@ int netlbl_catmap_getlong(struct netlbl_lsm_catmap *catmap, if ((off & (BITS_PER_LONG - 1)) != 0) return -EINVAL; + /* a null catmap is equivalent to an empty one */ + if (!catmap) { + *offset = (u32)-1; + return 0; + } + if (off < catmap->startbit) { off = catmap->startbit; *offset = off; 在 2020/7/27 19:50, yangerkun 写道: > Hi, > > Trying 'git am --rej'(git version 2.25.4) to apply patch eead1c2ea250 > ("netlabel: cope with NULL catmap") with linux stable branch > 4.4.y(git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git), > it seems the patch has been applied with wrong function(should be > cipso_v4_parsetag_rbm or cipso_v4_parsetag_rng, but > cipso_v4_parsetag_enum). Does this a bug or a expected result? > > > > > [xxx@code-website linux-stable]$ git am > 0001-netlabel-cope-with-NULL-catmap.patch --rej > Applying: netlabel: cope with NULL catmap > Checking patch net/ipv4/cipso_ipv4.c... > Hunk #1 succeeded at 1435 (offset 177 lines). > error: while searching for: > return ret_val; > } > > secattr->flags |= NETLBL_SECATTR_MLS_CAT; > } > > return 0; > > error: patch failed: net/ipv4/cipso_ipv4.c:1439 > Checking patch net/ipv6/calipso.c... > error: net/ipv6/calipso.c: does not exist in index > Checking patch net/netlabel/netlabel_kapi.c... > error: while searching for: > if ((off & (BITS_PER_LONG - 1)) != 0) > return -EINVAL; > > if (off < catmap->startbit) { > off = catmap->startbit; > *offset = off; > > error: patch failed: net/netlabel/netlabel_kapi.c:734 > Applying patch net/ipv4/cipso_ipv4.c with 1 reject... > Hunk #1 applied cleanly. > Rejected hunk #2. > Applying patch net/netlabel/netlabel_kapi.c with 1 reject... > Rejected hunk #1. > Patch failed at 0001 netlabel: cope with NULL catmap > hint: Use 'git am --show-current-patch' to see the failed patch > When you have resolved this problem, run "git am --continue". > If you prefer to skip this patch, run "git am --skip" instead. > To restore the original branch and stop patching, run "git am --abort". > [xxx@code-website linux-stable]$ git diff > diff --git a/net/ipv4/cipso_ipv4.c b/net/ipv4/cipso_ipv4.c > index 0e83c5b08e0e..375733b96bdf 100644 > --- a/net/ipv4/cipso_ipv4.c > +++ b/net/ipv4/cipso_ipv4.c > @@ -1435,7 +1435,8 @@ static int cipso_v4_parsetag_enum(const struct > cipso_v4_doi *doi_def, > return ret_val; > } > > - secattr->flags |= NETLBL_SECATTR_MLS_CAT; > + if (secattr->attr.mls.cat) > + secattr->flags |= NETLBL_SECATTR_MLS_CAT; > } > > return 0; >
diff --git a/net/ipv4/cipso_ipv4.c b/net/ipv4/cipso_ipv4.c index 0e83c5b08e0e..375733b96bdf 100644 --- a/net/ipv4/cipso_ipv4.c +++ b/net/ipv4/cipso_ipv4.c @@ -1435,7 +1435,8 @@ static int cipso_v4_parsetag_enum(const struct cipso_v4_doi *doi_def, return ret_val; } - secattr->flags |= NETLBL_SECATTR_MLS_CAT; + if (secattr->attr.mls.cat) + secattr->flags |= NETLBL_SECATTR_MLS_CAT; }