Lines 1726-1731
Link Here
|
1726 |
{ |
1726 |
{ |
1727 |
char keybuf[MAXLOGNAME + 1]; |
1727 |
char keybuf[MAXLOGNAME + 1]; |
1728 |
DBT key, entry; |
1728 |
DBT key, entry; |
|
|
1729 |
pwkeynum keynum; |
1729 |
struct compat_state *st; |
1730 |
struct compat_state *st; |
1730 |
enum nss_lookup_type how; |
1731 |
enum nss_lookup_type how; |
1731 |
const char *name; |
1732 |
const char *name; |
Lines 1776-1784
Link Here
|
1776 |
rv = NS_NOTFOUND; |
1777 |
rv = NS_NOTFOUND; |
1777 |
goto fin; |
1778 |
goto fin; |
1778 |
} |
1779 |
} |
|
|
1780 |
keynum = st->keynum; |
1779 |
stayopen = 1; |
1781 |
stayopen = 1; |
1780 |
} else { |
1782 |
} else { |
1781 |
st->keynum = 0; |
1783 |
keynum = 0; |
1782 |
stayopen = st->stayopen; |
1784 |
stayopen = st->stayopen; |
1783 |
} |
1785 |
} |
1784 |
docompat: |
1786 |
docompat: |
Lines 1822-1834
Link Here
|
1822 |
} |
1824 |
} |
1823 |
key.data = keybuf; |
1825 |
key.data = keybuf; |
1824 |
rv = NS_NOTFOUND; |
1826 |
rv = NS_NOTFOUND; |
1825 |
while (st->keynum >= 0) { |
1827 |
while (keynum >= 0) { |
1826 |
st->keynum++; |
1828 |
keynum++; |
1827 |
if (st->version < _PWD_CURRENT_VERSION) { |
1829 |
if (st->version < _PWD_CURRENT_VERSION) { |
1828 |
memcpy(&keybuf[1], &st->keynum, sizeof(st->keynum)); |
1830 |
memcpy(&keybuf[1], &keynum, sizeof(keynum)); |
1829 |
key.size = sizeof(st->keynum) + 1; |
1831 |
key.size = sizeof(keynum) + 1; |
1830 |
} else { |
1832 |
} else { |
1831 |
store = htonl(st->keynum); |
1833 |
store = htonl(keynum); |
1832 |
memcpy(&keybuf[1], &store, sizeof(store)); |
1834 |
memcpy(&keybuf[1], &store, sizeof(store)); |
1833 |
key.size = sizeof(store) + 1; |
1835 |
key.size = sizeof(store) + 1; |
1834 |
} |
1836 |
} |
Lines 1839-1845
Link Here
|
1839 |
rv = NS_UNAVAIL; |
1841 |
rv = NS_UNAVAIL; |
1840 |
goto fin; |
1842 |
goto fin; |
1841 |
} else if (rv == 1) { |
1843 |
} else if (rv == 1) { |
1842 |
st->keynum = -1; |
1844 |
keynum = -1; |
1843 |
rv = NS_NOTFOUND; |
1845 |
rv = NS_NOTFOUND; |
1844 |
goto fin; |
1846 |
goto fin; |
1845 |
} |
1847 |
} |
Lines 1924-1929
Link Here
|
1924 |
break; |
1926 |
break; |
1925 |
} |
1927 |
} |
1926 |
fin: |
1928 |
fin: |
|
|
1929 |
if (how == nss_lt_all) |
1930 |
st->keynum = keynum; |
1927 |
if (st->db != NULL && !stayopen) { |
1931 |
if (st->db != NULL && !stayopen) { |
1928 |
(void)st->db->close(st->db); |
1932 |
(void)st->db->close(st->db); |
1929 |
st->db = NULL; |
1933 |
st->db = NULL; |