[pacman-dev] [PATCH 2/4] Change sprintf function using for snprintf
Xavier
shiningxc at gmail.com
Sun Oct 18 06:02:10 EDT 2009
On Sun, Oct 18, 2009 at 6:03 AM, Laszlo Papp <djszapi2 at gmail.com> wrote:
> * Size examined str* function usage is a common coding practice, because it's
> more safer to avoid breakage while using str* functions.
>
> Signed-off-by: Laszlo Papp <djszapi at archlinux.us>
> ---
> lib/libalpm/add.c | 4 ++--
> lib/libalpm/be_files.c | 10 +++++-----
> lib/libalpm/conflict.c | 2 +-
> lib/libalpm/db.c | 4 ++--
> lib/libalpm/trans.c | 2 +-
> lib/libalpm/util.c | 16 +++++++++-------
> src/pacman/sync.c | 2 +-
> src/pacman/util.c | 2 +-
> 8 files changed, 22 insertions(+), 20 deletions(-)
>
> diff --git a/lib/libalpm/add.c b/lib/libalpm/add.c
> index ebcd6a5..209c38e 100644
> --- a/lib/libalpm/add.c
> +++ b/lib/libalpm/add.c
> @@ -311,7 +311,7 @@ static int extract_single_file(struct archive *archive,
> size_t backup_len = strlen(oldbackup) + 34;
> MALLOC(backup, backup_len, RET_ERR(PM_ERR_MEMORY, -1));
>
> - sprintf(backup, "%s\t%s", oldbackup, hash_pkg);
> + snprintf(backup, backup_len, "%s\t%s", oldbackup, hash_pkg);
I don't think this provides us any extra safety, because we already
compute exactly the size of the destination and allocate that memory.
I think it makes more sense where we define a fixed array, like char
path[PATH_MAX], and we then copy strings of different size to it :
src/pacman/pacman.c: snprintf(path,
PATH_MAX, "%s%s", alpm_option_get_root(), DBPATH + 1);
src/pacman/pacman.c: snprintf(path,
PATH_MAX, "%s%s", alpm_option_get_root(), LOGFILE + 1);
More information about the pacman-dev
mailing list