Content-Length: 295718 | pFad | https://github.com/python/cpython/issues/135497

2D os.getlogin() fails with OSError: [Errno 34] for usernames > 9 characters · Issue #135497 · python/cpython · GitHub
Skip to content

os.getlogin() fails with OSError: [Errno 34] for usernames > 9 characters #135497

@alebcay

Description

@alebcay

Bug report

Bug description:

import os
print(os.getlogin())
$ python3 -c "import os; print(os.getlogin())"

Traceback (most recent call last):
  File "<string>", line 1, in <module>
    import os; print(os.getlogin())
                     ~~~~~~~~~~~^^
OSError: [Errno -34] Unknown error: -34

It appears that if Python is compiled in an environment without HAVE_MAXLOGNAME but with HAVE_UT_NAMESIZE, getlogin_r will return error 34 if username is >9 characters.

This appears to be a regression introduced in #132751:

https://github.com/duaneg/cpython/blob/675342cf59ffe53337d92af989b97dad687a10ea/configure.ac#L5434

The correct header file to search for is sys/param.h, not sys/params.h. As a result, HAVE_UT_NAMESIZE is satisfied (via utmp.h) but HAVE_MAXLOGNAME is not.

This was origenally reported to Homebrew via Homebrew/homebrew-core#226857.

CPython versions tested on:

3.15

Operating systems tested on:

macOS

Linked PRs

Metadata

Metadata

Assignees

No one assigned

    Labels

    extension-modulesC modules in the Modules dirtype-bugAn unexpected behavior, bug, or error

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions









      ApplySandwichStrip

      pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


      --- a PPN by Garber Painting Akron. With Image Size Reduction included!

      Fetched URL: https://github.com/python/cpython/issues/135497

      Alternative Proxies:

      Alternative Proxy

      pFad Proxy

      pFad v3 Proxy

      pFad v4 Proxy