[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: e2fsprogs patch for review (and other stuff)



Svante Signell, le Tue 04 Oct 2011 17:53:49 +0200, a écrit :
> 1) It seems that more and more code becoming is Linux specific. People
> don't seem to care about portability :-(
> 2) Many Debian maintainers don't seem to care about other arches like
> Hurd/kFreeBSD either. Is there something that can be made to improve
> this situation.

They actually *have* to care about kFreeBSD, since it's a released arch.

> 3) Maybe more frequent releases of gnumach/hurd/eglibc could be created.
> Maybe using experimental would be a good idea?

Lack of manpower.

> Even if Samuel creates the build summaries like summary.txt and
> graph-total-top.txt there is no priority list on which packages are most
> important to concentrate on. Such a list would be very useful for people
> working with package porting.

Lack of manpower.

> +#ifdef __linux__
>  static struct str_table generic_code_table[] = {
>  	DEFINE_ENTRY(SI_ASYNCNL)
>  	DEFINE_ENTRY(SI_TKILL)
> @@ -143,6 +144,16 @@
>  	DEFINE_ENTRY(SI_KERNEL)
>  	END_TABLE
>  };
> +#else
> +static struct str_table generic_code_table[] = {
> +	DEFINE_ENTRY(SI_ASYNCIO)
> +	DEFINE_ENTRY(SI_MESGQ)
> +	DEFINE_ENTRY(SI_TIMER)
> +	DEFINE_ENTRY(SI_QUEUE)
> +	DEFINE_ENTRY(SI_USER)
> +	END_TABLE
> +};
> +#endif

Maybe rather use #ifdef SI_TKILL around the SI_TKILL entry, etc.?

> --- e2fsprogs-1.42~WIP-2011-10-01/lib/quota/mkquota.c	2011-09-18 20:06:52.000000000 +0200
> +++ e2fsprogs-1.42~WIP-2011-10-01.modified//lib/quota/mkquota.c	2011-10-04 15:25:26.000000000 +0200
> @@ -51,9 +51,13 @@
>  	char tmp[1024];
>  	qid_t id = (type == USRQUOTA) ? getuid() : getgid();
>  
> +#ifndef __GNU__
>  	if (!quotactl(QCMD(Q_V2_GETQUOTA, type), fs->device_name, id, tmp))
>  		return 1;
>  	return 0;
> +#else

Maybe rather use #ifdef Q_V2_GETQUOA?

> @@ -55,7 +56,11 @@
>  const char *get_qf_name(int type, int fmt, char *buf)
>  {
>  	BUG_ON(!buf);
> -	snprintf(buf, PATH_MAX, "%s.%s",
> +	int len;
> +	len = strlen(basenames[fmt]) + 1 + strlen(extensions[type]) + 1;
> +	if( (buf = malloc(len)) == NULL)
> +		 assert(buf);

Take care of such situation: assigning buf = malloc(len) will *not*
change the value of the pointer in the caller, that is

> @@ -65,7 +70,7 @@
>  			char *path_buf, size_t path_buf_size)
>  {
>  	struct stat	qf_stat;
> -	char qf_name[PATH_MAX] = {0};
> +	char *qf_name = NULL;

This one. You have to pass the address of the pointer to permit
get_qf_name to change it. You'll also have to take care about
allocations/frees to not leak.

Samuel


Reply to: