(atime_decoder,gid_decoder,ctime_decoder)
(mtime_decoder,size_decoder,uid_decoder): Use xstrtoumax. Fixes "pax-big-10g" bug
This commit is contained in:
@@ -20,6 +20,7 @@
|
|||||||
|
|
||||||
#include <hash.h>
|
#include <hash.h>
|
||||||
#include <quotearg.h>
|
#include <quotearg.h>
|
||||||
|
#include <xstrtol.h>
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
@@ -290,7 +291,9 @@ atime_coder (struct tar_stat_info const *st, char const *keyword,
|
|||||||
static void
|
static void
|
||||||
atime_decoder (struct tar_stat_info *st, char const *arg)
|
atime_decoder (struct tar_stat_info *st, char const *arg)
|
||||||
{
|
{
|
||||||
st->stat.st_atime = strtoul (arg, NULL, 0);
|
uintmax_t u;
|
||||||
|
if (xstrtoumax (arg, 0, 10, &u, "") == LONGINT_OK)
|
||||||
|
st->stat.st_atime = u;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@@ -303,7 +306,9 @@ gid_coder (struct tar_stat_info const *st, char const *keyword,
|
|||||||
static void
|
static void
|
||||||
gid_decoder (struct tar_stat_info *st, char const *arg)
|
gid_decoder (struct tar_stat_info *st, char const *arg)
|
||||||
{
|
{
|
||||||
st->stat.st_gid = strtoul (arg, NULL, 0);
|
uintmax_t u;
|
||||||
|
if (xstrtoumax (arg, 0, 10, &u, "") == LONGINT_OK)
|
||||||
|
st->stat.st_gid = u;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@@ -342,7 +347,9 @@ ctime_coder (struct tar_stat_info const *st, char const *keyword,
|
|||||||
static void
|
static void
|
||||||
ctime_decoder (struct tar_stat_info *st, char const *arg)
|
ctime_decoder (struct tar_stat_info *st, char const *arg)
|
||||||
{
|
{
|
||||||
st->stat.st_ctime = strtoul (arg, NULL, 0);
|
uintmax_t u;
|
||||||
|
if (xstrtoumax (arg, 0, 10, &u, "") == LONGINT_OK)
|
||||||
|
st->stat.st_ctime = u;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@@ -355,7 +362,9 @@ mtime_coder (struct tar_stat_info const *st, char const *keyword,
|
|||||||
static void
|
static void
|
||||||
mtime_decoder (struct tar_stat_info *st, char const *arg)
|
mtime_decoder (struct tar_stat_info *st, char const *arg)
|
||||||
{
|
{
|
||||||
st->stat.st_mtime = strtoul (arg, NULL, 0);
|
uintmax_t u;
|
||||||
|
if (xstrtoumax (arg, 0, 10, &u, "") == LONGINT_OK)
|
||||||
|
st->stat.st_mtime = u;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@@ -383,7 +392,9 @@ size_coder (struct tar_stat_info const *st, char const *keyword,
|
|||||||
static void
|
static void
|
||||||
size_decoder (struct tar_stat_info *st, char const *arg)
|
size_decoder (struct tar_stat_info *st, char const *arg)
|
||||||
{
|
{
|
||||||
st->stat.st_size = strtoul (arg, NULL, 0);
|
uintmax_t u;
|
||||||
|
if (xstrtoumax (arg, 0, 10, &u, "") == LONGINT_OK)
|
||||||
|
st->stat.st_size = u;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@@ -396,7 +407,9 @@ uid_coder (struct tar_stat_info const *st, char const *keyword,
|
|||||||
static void
|
static void
|
||||||
uid_decoder (struct tar_stat_info *st, char const *arg)
|
uid_decoder (struct tar_stat_info *st, char const *arg)
|
||||||
{
|
{
|
||||||
st->stat.st_uid = strtoul (arg, NULL, 0);
|
uintmax_t u;
|
||||||
|
if (xstrtoumax (arg, 0, 10, &u, "") == LONGINT_OK)
|
||||||
|
st->stat.st_uid = u;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|||||||
Reference in New Issue
Block a user